Attack of the whitespace police. These are whitespace changes only,

translators can ignore them.

In the future, please use tabs for 8 spaces and two spaces after a
period.  This should be in the FDP Primer if it's not already (it's
been beaten to death on -doc a few times over the years).
This commit is contained in:
Jim Mock 2002-04-13 18:41:13 +00:00
parent 62bf3fd4b1
commit cec8304525
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12781

View file

@ -58,22 +58,22 @@
<authorgroup>
<author>
<firstname>Victoria</firstname>
<surname>Chan</surname>
<affiliation>
<address><email>vkchan@kendryl.net</email></address>
</affiliation>
<firstname>Victoria</firstname>
<surname>Chan</surname>
<affiliation>
<address><email>vkchan@kendryl.net</email></address>
</affiliation>
</author>
<author>
<firstname>Hiten</firstname>
<firstname>Hiten</firstname>
<surname>Pandya</surname>
<affiliation>
<address><email>hiten@uk.FreeBSD.org</email></address>
</affiliation>
</author>
</authorgroup>
<copyright>
<year>2002</year>
<holder role="mailto:vkchan@kendryl.net">Victoria Chan</holder>
@ -83,515 +83,554 @@
<pubdate>$FreeBSD$</pubdate>
<abstract>
<para>This document is presented in hopes of making it easier for anyone that
needs to get Java up and running on FreeBSD,
with the least amount of aggravation. Plan on spending a whole day on
such a project as it will take time to assemble all the pieces and
compile them individually, and then as a whole. It also shows how to
install the famous Jakarta Tomcat Servlet and
JSP container on the FreeBSD operating system.</para>
<para>This document is presented in hopes of making it easier for
anyone that needs to get Java up and running on FreeBSD, with the
least amount of aggravation. Plan on spending a whole day on such
a project as it will take time to assemble all the pieces and
compile them individually, and then as a whole. It also shows how
to install the famous Jakarta Tomcat Servlet and JSP container on
the FreeBSD operating system.</para>
</abstract>
</articleinfo>
<!-- END of Article Metadata-->
<sect1>
<title>Introduction</title>
<para>The Java programming language was birthed on
<literal>May 23rd 1995</literal>. One would expect that after all this
time, Java applications would be easy to install and ready to run from a
single package, or port on FreeBSD, thus making it available for the
<quote>masses</quote>. This is not the case, unfortunately, as the Java
distribution is held very closely by Sun Microsystems, and prohibits re-distribution.
All Java Applets must be compiled from source code, together with the Java
Development Kit from Sun Microsystems. All these ingredients
must be blended together in the right order, assembled, and compiled by
the end user. With such distribution philosophies at heart, it is my
opinion that Java will always be developer or hacker use only. I certainly
found this to be true when I needed to serve up some
<filename>.jsp</filename> pages for a client on my web server, and needed
to get <filename role="package">www/jakarta-tomcat</filename> to work with
<filename role="package">www/apache13</filename> on my FreeBSD system.</para>
<para>The Tomcat portion of the install is very straight forward, but the
difficulty I had was getting Java Development Kit up and running for
FreeBSD 4.x, as Sun Microsystems only supplies Binaries for Linux,
Solaris, and Windows NT.
This means that I had to compile my own JDK for FreeBSD. I began by
searching for documentation on the Internet. I quickly found that there
is more source code than I need along with patches to the source code, but very
little documentation of what to do after obtaining everything.</para>
<para>In this article, you will find how to install the Java Development Kit
for FreeBSD, and how to get up and running with Tomcat. A
<xref linkend="ref"> section is also provided for further reading.</para>
</sect1>
<sect1>
<title>The Java Environment</title>
<para>Ensure that you have the current ports collection as
<command>make</command> it will fail if it attempts to build
older source. You can upgrade your entire ports collection by
using <application>CVSup</application>. See <ulink
url="&wwwurl;/doc/en_US.ISO8859-1/books/handbook/cvsup.html"></ulink>
for more information. You can also download the ports you need manually
from <ulink url="&ftpurl;/pub/FreeBSD/branches/-current/ports/"></ulink>
to get you going.</para>
<para>The Java programming language was birthed on <literal>May 23rd
1995</literal>. One would expect that after all this time, Java
applications would be easy to install and ready to run from a single
package, or port on FreeBSD, thus making it available for the
<quote>masses</quote>. This is not the case, unfortunately, as
the Java distribution is held very closely by Sun Microsystems,
and prohibits re-distribution. All Java Applets must be compiled
from source code, together with the Java Development Kit from Sun
Microsystems. All these ingredients must be blended together in
the right order, assembled, and compiled by the end user. With
such distribution philosophies at heart, it is my opinion that
Java will always be developer or hacker use only. I certainly
found this to be true when I needed to serve up some
<filename>.jsp</filename> pages for a client on my web server,
and needed to get <filename
role="package">www/jakarta-tomcat</filename> to work with
<filename role="package">www/apache13</filename> on my FreeBSD
system.</para>
<note>
<para>You will need the <literal>Linux Emulation</literal> (Linux-ABI)
enabled in your kernel configuration. Simply add the following option
to your kernel configuration file and recompile it. Instructions for
building a kernel can be found in the FreeBSD Handbook.</para>
<para>The Tomcat portion of the install is very straight forward, but
the difficulty I had was getting Java Development Kit up and
running for FreeBSD 4.x, as Sun Microsystems only supplies
Binaries for Linux, Solaris, and Windows NT. This means that I
had to compile my own JDK for FreeBSD. I began by searching for
documentation on the Internet. I quickly found that there is more
source code than I need along with patches to the source code, but
very little documentation of what to do after obtaining
everything.</para>
<programlisting>options COMPAT_LINUX</programlisting>
<para>In this article, you will find how to install the Java
Development Kit for FreeBSD, and how to get up and running with
Tomcat. A <xref linkend="ref"> section is also provided for
further reading.</para>
</sect1>
<para>The above option will add Linux-ABI support to your kernel, when
it is recompiled.</para>
</note>
<sect1>
<title>The Java Environment</title>
<para>Ensure that you have the current ports collection as
<command>make</command> it will fail if it attempts to build older
source. You can upgrade your entire ports collection by using
<application>CVSup</application>. See <ulink
url="&wwwurl;/doc/en_US.ISO8859-1/books/handbook/cvsup.html"></ulink>
for more information. You can also download the ports you need
manually from <ulink
url="&ftpurl;/pub/FreeBSD/branches/-current/ports/"></ulink> to
get you going.</para>
<note>
<para>You will need the <literal>Linux Emulation</literal>
(Linux-ABI) enabled in your kernel configuration. Simply add
the following option to your kernel configuration file and
recompile it. Instructions for building a kernel can be found
in the FreeBSD Handbook.</para>
<programlisting>options COMPAT_LINUX</programlisting>
<para>The above option will add Linux-ABI support to your
kernel, when it is recompiled.</para>
</note>
<para>The list of dependencies below, are required to be installed
manually in a certain order. Dependencies that are automatically
downloaded are not listed here.</para>
<para>The list of dependencies below, are required to be installed manually
in a certain order. Dependencies that are automatically downloaded are not
listed here.</para>
<itemizedlist>
<listitem>
<para><filename role="package">java/jdk13</filename></para>
<para><filename role="package">java/jdk13</filename></para>
</listitem>
<listitem>
<para><filename role="package">java/linux-jdk13</filename></para>
<para><filename role="package">java/linux-jdk13</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/gtar</filename></para>
<para><filename role="package">archivers/gtar</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/bzip2</filename></para>
<para><filename role="package">archivers/bzip2</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/unzip</filename></para>
<para><filename role="package">archivers/unzip</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/zip</filename></para>
<para><filename role="package">archivers/zip</filename></para>
</listitem>
</itemizedlist>
<para>You will need to get the following:</para>
<procedure>
<step>
<para>Download <filename>bsd-jdk131-patches-5.tar.gz</filename> from
<ulink url="http://www.eyesbeyond.com/freebsddom/java/jdk13.html"></ulink>
and place it under <filename>/usr/ports/distfiles</filename>.</para>
<para>Download <filename>bsd-jdk131-patches-5.tar.gz</filename>
from <ulink
url="http://www.eyesbeyond.com/freebsddom/java/jdk13.html"></ulink>
and place it under <filename>/usr/ports/distfiles</filename>.</para>
</step>
<step>
<para>Next get out your web browser and head on over to
<ulink url="http://java.sun.com/j2se/1.3/download-linux.html"></ulink>
and find SDK downloads. Click on the <quote>continue</quote> button
below <quote>GNUZIP Tar Shell Script</quote>. Be sure you read every
word of the license page before you click on the <quote>Accept</quote>
button! You will be brought to a page titled <quote>Download Java(TM) 2
SDK, Standard Edition 1.3.1_02</quote>. Scroll to the bottom and click on
the <quote>HTTP download</quote> button. When the <quote>File Download</quote>
box comes up, be sure to click on the <quote>Open</quote> button rather than the
<quote>Save</quote> button. You will be presented with another
<quote>File Download</quote> box - this time choose <quote>Save</quote>
and you will be able to save j2sdk-1_3_1_02-linux-i386.bin.
Place it in /usr/ports/distfiles.</para>
<para>Next get out your web browser and head on over to
<ulink url="http://java.sun.com/j2se/1.3/download-linux.html"></ulink>
and find SDK downloads. Click on the <quote>continue</quote>
button below <quote>GNUZIP Tar Shell Script</quote>. Be sure
you read every word of the license page before you click on
the <quote>Accept</quote> button! You will be brought to a
page titled <quote>Download Java(TM) 2 SDK, Standard Edition
1.3.1_02</quote>. Scroll to the bottom and click on the
<quote>HTTP download</quote> button. When the <quote>File
Download</quote> box comes up, be sure to click on the
<quote>Open</quote> button rather than the <quote>Save</quote>
button. You will be presented with another <quote>File
Download</quote> box - this time choose <quote>Save</quote>
and you will be able to save j2sdk-1_3_1_02-linux-i386.bin.
Place it in /usr/ports/distfiles.</para>
</step>
<step>
<para>Go to <ulink url="http://www.sun.com/software/java2/download.html"></ulink>.
In the table under <literal>Produce Description</literal>, named
<literal>Java 2 SDK 1.3.1</literal>, go to the right-hand cell and
click <quote>download</quote>. You will be taken to the <quote>Sign On</quote>
page, where you must sign in if you already have an account, or
register for access. Once you have signed on, you will be taken to the
<quote>Legal</quote> page, where you must accept the license agreement;
scroll down (reading the license) and click on the <quote>Continue</quote>
button. Next page, is the <quote>Receipt</quote> page. This is where you
will save you order number. You will be able to choose the location
that is nearest to you. Click on <quote>Java 2 SDK, Standard
Edition, version 1.3.1</quote>. Save the
<filename>j2sdk-1_3_1-src.tar.gz</filename> to the
<filename>/usr/ports/distfiles/</filename> directory.</para>
<para>Go to <ulink
url="http://www.sun.com/software/java2/download.html"></ulink>.
In the table under <literal>Produce Description</literal>,
named <literal>Java 2 SDK 1.3.1</literal>, go to the
right-hand cell and click <quote>download</quote>. You will
be taken to the <quote>Sign On</quote> page, where you must
sign in if you already have an account, or register for
access. Once you have signed on, you will be taken to the
<quote>Legal</quote> page, where you must accept the license
agreement; scroll down (reading the license) and click on the
<quote>Continue</quote> button. Next page, is the
<quote>Receipt</quote> page. This is where you will save you
order number. You will be able to choose the location that is
nearest to you. Click on <quote>Java 2 SDK, Standard Edition,
version 1.3.1</quote>. Save the
<filename>j2sdk-1_3_1-src.tar.gz</filename> to the
<filename>/usr/ports/distfiles/</filename> directory.</para>
</step>
</procedure>
<note><para>It is very important for you to read the License Agreement which
has been issued by Sun Microsystems Corp. There are several restrictions
in place on the use of Java, which you must address. The FreeBSD Project
does not take any responsibilities for your actions.</para>
<note>
<para>It is very important for you to read the License Agreement
which has been issued by Sun Microsystems Corp. There are
several restrictions in place on the use of Java, which you must
address. The FreeBSD Project does not take any responsibilities
for your actions.</para>
<para>Do not discard any of the downloaded files, as they will be needed for
building some of the native ports for FreeBSD, which are discussed later
on.</para>
<para>Do not discard any of the downloaded files, as they will be
needed for building some of the native ports for FreeBSD, which
are discussed later on.</para>
</note>
<para>Now that you have assembled all the source files and ports, you need
to start by building
<filename role="package">java/linux-jdk13</filename>:</para>
<para>Now that you have assembled all the source files and ports,
you need to start by building <filename
role="package">java/linux-jdk13</filename>:</para>
<screen>&prompt.root; cd /usr/ports/archivers/gtar; make all install clean</screen>
<screen>&prompt.root; cd /usr/ports/archivers/unzip; make all install clean</screen>
<screen>&prompt.root; cd /usr/ports/archivers/zip; make all install clean</screen>
<para>And finally:</para>
<screen>&prompt.root; cd /usr/ports/java/linux-jdk13</screen>
<screen>&prompt.root; make all install clean</screen>
<para>Once you have built
<filename role="package">java/linux-jdk13</filename>, you need to test
it, to make sure it works as intended. To do that:</para>
<para>Once you have built <filename
role="package">java/linux-jdk13</filename>, you need to test it, to
make sure it works as intended. To do that:</para>
<screen>&prompt.root; cd /usr/local/linux-jdk1.3.1/bin</screen>
<screen>&prompt.root; ./java-version</screen>
<para>The output of the above command should be as follows:</para>
<programlisting>java version "1.3.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_02-b02)
Classic VM (build 1.3.1_02-b02, green threads, nojit)</programlisting>
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_02-b02)
Classic VM (build 1.3.1_02-b02, green threads, nojit)</programlisting>
<para>If you did not get the correct response, you need to:</para>
<screen>&prompt.root; cd /usr/ports/java/linux-jdk13</screen>
<screen>&prompt.root; make deinstall</screen>
<para>And make sure that <filename>/usr/local</filename> does not contain a
<filename>linux-jdk1.3.1</filename> directory. If you find a fragment of
the directory, delete it. Repeat the <literal>build and install</literal>
process for <filename role="package">java/linux-jdk13</filename>.</para>
<para>To make the native <literal>Java Development Kit 1.3.1</literal> for
FreeBSD, do the following:</para>
<para>And make sure that <filename>/usr/local</filename> does not
contain a <filename>linux-jdk1.3.1</filename> directory. If you
find a fragment of the directory, delete it. Repeat the
<literal>build and install</literal> process for <filename
role="package">java/linux-jdk13</filename>.</para>
<para>To make the native <literal>Java Development Kit
1.3.1</literal> for FreeBSD, do the following:</para>
<procedure>
<step>
<para>Make sure you have the <filename>j2sdk-1_3_1-src.tar.gz</filename>
file in your <filename>/usr/ports/distfiles</filename>. This file is
needed for applying the <quote>patch-sets</quote> discussed below.</para>
<para>Make sure you have the
<filename>j2sdk-1_3_1-src.tar.gz</filename> file in your
<filename>/usr/ports/distfiles</filename>. This file is needed
for applying the <quote>patch-sets</quote> discussed below.</para>
</step>
<step>
<para>You will need to download the <literal>patch set</literal>
for building the port. The patch-set file is called
<filename>bsd-jdk131-patches-6.tar.gz</filename>. You should also make sure
the integrity of the files by matching it with the following
<acronym>MD5</acronym> checksum. The patch-set is called
<literal>Patch-set 6</literal>.</para>
<para>You will need to download the <literal>patch set</literal>
for building the port. The patch-set file is called
<filename>bsd-jdk131-patches-6.tar.gz</filename>. You should
also make sure the integrity of the files by matching it with
the following <acronym>MD5</acronym> checksum. The patch-set
is called <literal>Patch-set 6</literal>.</para>
<programlisting>
MD5 (bsd-jdk131-patches-6.tar.gz) = 9cade10b81d6034fdd2176bef32bdbf9
</programlisting>
<para>The patch-set is available from:
<ulink url="http://www.eyesbeyond.com/freebsddom/java/index.html"></ulink></para>
MD5 (bsd-jdk131-patches-6.tar.gz) = 9cade10b81d6034fdd2176bef32bdbf9</programlisting>
<para>The patch-set is available from: <ulink
url="http://www.eyesbeyond.com/freebsddom/java/index.html"></ulink></para>
</step>
</procedure>
<para>The last procedure discussed above (building the native
<para>The last procedure discussed above (building the native
<literal>jdk</literal>) will take some time.</para>
</sect1>
<sect1>
<title>Jakarta Tomcat Setup</title>
<sect2>
<title>Overview</title>
<para>Java is becoming an even more popular
for making diverse and scalable platform independent
solutions. One of the most growing needs of Java is in the
<literal>ASP (Application Service Provider)</literal> market.
Java serves as the perfect solution for these types
of markets, with the following advantages:</para>
<sect2>
<title>Overview</title>
<para>Java is becoming an even more popular for making diverse
and scalable platform independent solutions. One of the most
growing needs of Java is in the <literal>ASP (Application
Service Provider)</literal> market. Java serves as the perfect
solution for these types of markets, with the following
advantages:</para>
<itemizedlist>
<listitem>
<para>Platform Independence</para>
</listitem>
<listitem>
<para>Platform Independence</para>
</listitem>
<listitem>
<para>Industry Wide Commitment</para>
</listitem>
<listitem>
<para>Industry Wide Commitment</para>
</listitem>
<listitem>
<para>Scalability</para>
</listitem>
<listitem>
<para>Scalability</para>
</listitem>
<listitem>
<para>Reliable Performance</para>
</listitem>
<listitem>
<para>Reliable Performance</para>
</listitem>
<listitem>
<para>Distributed, Multi-threaded, Secure etc.</para>
</listitem>
</itemizedlist>
<para>A very important and growing technology which has emerged
from Java is <acronym>JSP</acronym> (JavaServer Pages).</para>
<para><acronym>JSP</acronym> (JavaServer Pages) is a server-side technology
introduced by <literal>Sun Microsystems Corp.</literal>, which provides a
quick simple way to generate dynamic content from within
<acronym>HTML</acronym> pages. It uses <acronym>XML</acronym> tags
along with Java scriptlets to encapsulate and separate the logic from
the design and display. When a <acronym>JSP</acronym> page is
invoked, it is dynamically converted into a Servlet and processed by the
server to produce the resulting <acronym>HTML/XML</acronym> page for
the client. When <acronym>JSP</acronym> is used in conjunction with
JavaBeans, it is possible to produce very diverse and scalable applications,
which may be combined with the strength and performance of FreeBSD.</para>
<para><application>Tomcat</application> is an open-source implementation
of the Java Servlets and JavaServer Pages technologies, developed under the
Jakarta project at the Apache Software Foundation.
Tomcat implements a new Servlet framework (called Catalina) that is
based on completely new architecture with the Servlet 2.3 and
<acronym>JSP</acronym> 1.2 specifications. It includes many
additional features that make it a useful platform for developing
and deploying web applications and web services. In a nutshell,
Tomcat is an application server written in 100% Pure Java.</para>
<para>Tomcat is used for many purposes, and is not limited to Application
Servers. It provides and open platform to develop extensible web and
content management services. When Tomcat is used with an optimized
FreeBSD system, it can provide highly reliable and fast pacing services.</para>
<para>A very important and growing technology which has emerged
from Java is <acronym>JSP</acronym> (JavaServer Pages).</para>
<para><acronym>JSP</acronym> (JavaServer Pages) is a server-side
technology introduced by <literal>Sun Microsystems
Corp.</literal>, which provides a quick simple way to generate
dynamic content from within <acronym>HTML</acronym> pages. It
uses <acronym>XML</acronym> tags along with Java scriptlets to
encapsulate and separate the logic from the design and display.
When a <acronym>JSP</acronym> page is invoked, it is dynamically
converted into a Servlet and processed by the server to produce
the resulting <acronym>HTML/XML</acronym> page for the client.
When <acronym>JSP</acronym> is used in conjunction with
JavaBeans, it is possible to produce very diverse and scalable
applications, which may be combined with the strength and
performance of FreeBSD.</para>
<para><application>Tomcat</application> is an open-source
implementation of the Java Servlets and JavaServer Pages
technologies, developed under the Jakarta project at the Apache
Software Foundation. Tomcat implements a new Servlet framework
(called Catalina) that is based on completely new architecture
with the Servlet 2.3 and <acronym>JSP</acronym> 1.2
specifications. It includes many additional features that make
it a useful platform for developing and deploying web
applications and web services. In a nutshell, Tomcat is an
application server written in 100% Pure Java.</para>
<para>Tomcat is used for many purposes, and is not limited to
Application Servers. It provides and open platform to develop
extensible web and content management services. When Tomcat is
used with an optimized FreeBSD system, it can provide highly
reliable and fast pacing services.</para>
<para>Please refer to the <xref linkend="ref"> section for more
information on Tomcat and <acronym>JSP</acronym>. The next section
will demonstrate how to build the <quote>Tomcat Environment</quote>
for FreeBSD. The version of Tomcat used in this guide is
<literal>4.0.3</literal>. This version contains
major bug fixes, and the following updates/changes:</para>
information on Tomcat and <acronym>JSP</acronym>. The next
section will demonstrate how to build the <quote>Tomcat
Environment</quote> for FreeBSD. The version of Tomcat used in
this guide is <literal>4.0.3</literal>. This version contains
major bug fixes, and the following updates/changes:</para>
<itemizedlist>
<listitem>
<para><literal>JSP 1.2 Specification</literal></para>
</listitem>
<listitem>
<para><literal>JSP 1.2 Specification</literal></para>
</listitem>
<listitem>
<para><literal>Java Servlet 2.3 Specification</literal></para>
</listitem>
<listitem>
<para><literal>Full backward compatibility with the Java Servlet
2.2 and JSP 1.1 Specification</literal></para>
</listitem>
<listitem>
<para><literal>Java Servlet 2.3 Specification</literal></para>
</listitem>
<listitem>
<para><literal>Full backward compatibility with the Java Servlet
2.2 and JSP 1.1 Specification</literal></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>The Tomcat environment for FreeBSD</title>
<para>It is very simple to install Tomcat on a FreeBSD machine, after
setting up the necessary Java environment, which
we have previously completed.</para>
<para>It is very simple to install Tomcat on a FreeBSD machine,
after setting up the necessary Java environment, which we have
previously completed.</para>
<para>In-order to setup Tomcat on FreeBSD, follow the below
procedure:</para>
<procedure>
<step>
<para>Follow the above steps to setup the necessary
Java environment.</para>
</step>
<step>
<para>Set an environment variable <envar>JAVA_HOME</envar> which,
points to the directory where you have installed the JDK (the below
example points to a native build of the JDK):</para>
<screen>&prompt.root; setenv JAVA_HOME /usr/local/jdk1.3.1 (for C Shells)</screen>
<step>
<para>Follow the above steps to setup the necessary Java
environment.</para>
</step>
<screen>&prompt.root; export JAVA_HOME=/usr/local/jdk1.3.1 (for Bourne Shells)</screen>
<para>This environment variable should be made permanent by adding it
into either <filename>.profile</filename> or <filename>.cshrc</filename>,
depending on the shell you are using. This variable is very crucial for
the functioning of all the Java based programs, including Tomcat itself.</para>
</step>
<step>
<para>Download the Tomcat <quote>binary distribution</quote> from
the Jakarta website, which is located at
<literal><ulink url="&tomcat403"></ulink></literal>. The file to
download is called <filename>jakarta-tomcat-4.0.3.tar.gz</filename>.</para>
</step>
<step>
<para>The compressed and archived file we downloaded in the previous
step uses special <quote>GNU Extensions</quote>. In-order to untar
and uncompress the file, we will need to install
<literal>GNU Tar (<filename role="package">archivers/gtar</filename>)</literal>,
by doing the following:</para>
<screen>&prompt.root; cd /usr/ports/archivers &amp; &amp; make all install clean</screen>
</step>
<step>
<para>Un-tar and Un-compress the
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> file into the
<filename>/usr/local</filename> directory and rename the directory
to <filename>tomcat-4.0</filename> for ease of reference:</para>
<step>
<para>Set an environment variable <envar>JAVA_HOME</envar>
which, points to the directory where you have installed the
JDK (the below example points to a native build of the
JDK):</para>
<screen>&prompt.root; cd /usr/local</screen>
<screen>&prompt.root; setenv JAVA_HOME /usr/local/jdk1.3.1 (for C Shells)</screen>
<screen>&prompt.root; gtar zxvf jakarta-tomcat-4.0.3.tar.gz</screen>
<screen>&prompt.root; export JAVA_HOME=/usr/local/jdk1.3.1 (for Bourne Shells)</screen>
<screen>&prompt.root; ls jakarta*</screen>
<para>This environment variable should be made permanent by
adding it into either <filename>.profile</filename> or
<filename>.cshrc</filename>, depending on the shell you are
using. This variable is very crucial for the functioning of
all the Java based programs, including Tomcat itself.</para>
</step>
<screen>jakarta-tomcat-4.0.3</screen>
<step>
<para>Download the Tomcat <quote>binary distribution</quote>
from the Jakarta website, which is located at
<literal><ulink url="&tomcat403"></ulink></literal>. The
file to download is called
<filename>jakarta-tomcat-4.0.3.tar.gz</filename>.</para>
</step>
<screen>&prompt.root; mv jakarta-tomcat-4.0.3 tomcat-4.0</screen>
<step>
<para>The compressed and archived file we downloaded in the
previous step uses special <quote>GNU Extensions</quote>.
In-order to untar and uncompress the file, we will need to
install <literal>GNU Tar (<filename
role="package">archivers/gtar</filename>)</literal>, by
doing the following:</para>
<para>You can remove the
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> at your preference.</para>
</step>
<screen>&prompt.root; cd /usr/ports/archivers &amp; &amp; make all install clean</screen>
</step>
<step>
<para>Un-tar and Un-compress the
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> file into
the <filename>/usr/local</filename> directory and rename the
directory to <filename>tomcat-4.0</filename> for ease of
reference:</para>
<screen>&prompt.root; cd /usr/local</screen>
<screen>&prompt.root; gtar zxvf jakarta-tomcat-4.0.3.tar.gz</screen>
<screen>&prompt.root; ls jakarta*</screen>
<screen>jakarta-tomcat-4.0.3</screen>
<screen>&prompt.root; mv jakarta-tomcat-4.0.3 tomcat-4.0</screen>
<para>You can remove the
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> at your
preference.</para>
</step>
</procedure>
<note>
<para><literal>Installation by using the source code is currently out of
scope for this document. Please refer to the following files for
addition information on building from source, available from your
Tomcat distribution directory:</literal></para>
<itemizedlist>
<listitem>
<para><literal>Installation by using the source code is currently
out of scope for this document. Please refer to the following
files for addition information on building from source,
available from your Tomcat distribution
directory:</literal></para>
<itemizedlist>
<listitem>
<para><filename>/usr/local/tomcat-4.0/README.txt</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/tomcat-4.0/BUILDING.txt</filename></para>
</listitem>
</itemizedlist>
</itemizedlist>
</note>
</sect2>
<sect2>
<title>Operating Tomcat - Basics</title>
<para>Now that we have finished installing Tomcat. The following
example shows how to start the Tomcat server:</para>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<para>Now that we have finished installing Tomcat. The following
example shows how to start the Tomcat server:</para>
<screen>&prompt.root; ./startup.sh (for starting Tomcat)</screen>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<para>You can test if your Tomcat server has started by visiting the
following URL: <literal>http://127.0.0.1:8080</literal> or
<literal>http://localhost:8080</literal>. To stop Tomcat:</para>
<screen>&prompt.root; ./startup.sh (for starting Tomcat)</screen>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<para>You can test if your Tomcat server has started by visiting
the following URL: <literal>http://127.0.0.1:8080</literal> or
<literal>http://localhost:8080</literal>. To stop
Tomcat:</para>
<screen>&prompt.root; ./shutdown.sh</screen> <para>(for stopping Tomcat)</para>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<screen>&prompt.root; ./shutdown.sh</screen>
<para>The <filename>startup.sh</filename> and
<filename>shutdown.sh</filename> are frontends to the
<filename>catalina.sh</filename> executable script in the same directory;
if you would like to start Tomcat automatically at boot-time run:</para>
<para>(for stopping Tomcat)</para>
<screen>&prompt.root; cd /usr/local/etc/rc.d</screen>
<para>The <filename>startup.sh</filename> and
<filename>shutdown.sh</filename> are frontends to the
<filename>catalina.sh</filename> executable script in the same
directory; if you would like to start Tomcat automatically at
boot-time run:</para>
<screen>&prompt.root; ln -s /usr/local/tomcat-4.0/bin/catalina.sh</screen>
<screen>&prompt.root; cd /usr/local/etc/rc.d</screen>
<para>Edit the <filename>catalina.sh</filename>, and add the following
at the beginning of the file (after the comment box):</para>
<screen>&prompt.root; ln -s /usr/local/tomcat-4.0/bin/catalina.sh</screen>
<programlisting>JAVA_HOME=/usr/local/jdk1.3.1</programlisting>
<para>Edit the <filename>catalina.sh</filename>, and add the
following at the beginning of the file (after the comment
box):</para>
<para>If your port <literal>8080</literal> is occupied by some other
service, you can change it by editing the <filename>server.xml</filename>
in your Tomcat's <filename>conf/</filename> directory. In the
example below, the port will be changed to 80, assuming there is no
service running on that port.</para>
<programlisting>JAVA_HOME=/usr/local/jdk1.3.1</programlisting>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/conf</screen>
<para>If your port <literal>8080</literal> is occupied by some other
service, you can change it by editing the
<filename>server.xml</filename> in your Tomcat's
<filename>conf/</filename> directory. In the example below, the
port will be changed to 80, assuming there is no service running
on that port.</para>
<screen>&prompt.root; fgrep -n 8080 server.xml</screen>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/conf</screen>
<screen>~65: By default, a non-SSL HTTP/1.1 Connector is established on port 8080.</screen>
<screen>&prompt.root; fgrep -n 8080 server.xml</screen>
<screen>~89: port="8080" minProcessors="5" maxProcessors="75"</screen>
<screen>~65: By default, a non-SSL HTTP/1.1 Connector is established on port 8080.</screen>
<screen>&prompt.root; cat server.xml | sed s/8080/80/ > server.xml</screen>
<screen>~89: port="8080" minProcessors="5" maxProcessors="75"</screen>
<screen>&prompt.root; cat server.xml | sed s/8080/80/ > server.xml</screen>
</sect2>
</sect1>
<sect1 id="ref" xreflabel="reference">
<title>Reference</title>
<informaltable>
<tgroup cols="1">
<tbody>
<row>
<entry>
<ulink url="&wwwurl;/java">The FreeBSD Java Project</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="http://java.sun.com">JavaSoft. Home of Java</ulink>
</entry>
</row>
<informaltable>
<tgroup cols="1">
<tbody>
<row>
<entry>
<ulink url="&wwwurl;/java">The FreeBSD Java Project</ulink>
</entry>
</row>
<row>
<entry>
<ulink
url="&sunurl;/software/communitysource/java2/licensing.html">The
Sun Community Source Licensing for Java</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="http://java.sun.com">JavaSoft. Home of Java</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&tomcaturl">Jakarta Tomcat Homepage</ulink>
</entry>
</row>
<row>
<entry>
<ulink
url="&sunurl;/software/communitysource/java2/licensing.html">The
Sun Community Source Licensing for Java</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="http://java.sun.com/docs/index.html">J2SE
Documentation</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&tomcaturl">Jakarta Tomcat Homepage</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&wwwurl;/ports/java.html">FreeBSD Ports - Java
Section</ulink>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<row>
<entry>
<ulink url="http://java.sun.com/docs/index.html">J2SE
Documentation</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&wwwurl;/ports/java.html">FreeBSD Ports - Java
Section</ulink>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<sect2>
<title>Conclusion</title>
<para>Finally, we are at the end of the article and have a working version of
Tomcat. We hope that you have learned the basics of installing and
building the Java Development Kit on FreeBSD, along with installation
of the Tomcat binary distribution application server released by the
Apache Software Foundation. The <xref linkend="ref"> section
contains pointers to additional resources on this topic, some which
are in print, some which are on the World Wide Web, or both.</para>
<sect2>
<title>Conclusion</title>
<para>Finally, we are at the end of the article and have a working
version of Tomcat. We hope that you have learned the basics of
installing and building the Java Development Kit on FreeBSD,
along with installation of the Tomcat binary distribution
application server released by the Apache Software Foundation.
The <xref linkend="ref"> section contains pointers to additional
resources on this topic, some which are in print, some which are
on the World Wide Web, or both.</para>
<para>The most important thing is drive space. I suggest having
<literal>700MB</literal> or more free space in <filename>/usr</filename>.
I hope this article has helped you in some small way. For
questions, comments, compliments, or rants, please direct them to
<ulink url="mailto:vkchan@kendryl.net">Victoria Chan</ulink>.</para>
<literal>700MB</literal> or more free space in
<filename>/usr</filename>. I hope this article has helped you
in some small way. For questions, comments, compliments, or
rants, please direct them to <ulink
url="mailto:vkchan@kendryl.net">Victoria Chan</ulink>.</para>
</sect2>
</sect1>
</article>