|
|||||||||||||
Tomcat
Java Servlet enabled web server |
Tomcat is a servlet container enabled HTTP server written in
Java that adheres to the Java Servlet and JavaServer Pages standard.
As of this writting Tomcat 4.1 is the latest stable release.
Typically Tomcat runs stand alone on port 8080 while listening
on several other nearby ports for admin and control purposes.
As of Tomcat version 4, a 'lite edition' (LE) version of Tomcat has become
available that leverages recent enhancements made in Java 1.4.1 and
thereafter. Before Tomcat LE, it was traditional for Tomcat to include
all sorts of extra bits to extend Java' capabilities.
|
|
Essentially, only Java needs to be present for Tomcat to run. It is possible that only J2RE (runtime edition) is necessary, however J2SE (Std Edition/SDK) is probably the more prudent Java version to have in place before launching Tomcat. Note: J2SE often downloads as a *.rpm.bin file which needs to be executed to extract the *.rpm file.
|
Additional
Tomcat can be used in place of Apache to serve HTTP with server side Java. For general web serving, Apache performance will exceed what can be provided by Tomcat. In some situations, in may make sense to configure Tomcat to be invoked by Apache when Server Side Java is required. More on that soon.
Manually starting and stoping Tomcat may be problematic for certain production settings. There are RPM's for Linux that install Tomcat as a service. As a service the venerable service tomcat start mode of operation is enabled, which can further be automated with chkconfig and other tools used commonly with sendmail, httpd, named, and other UNIX/Linux stalwart services. More on that soon.
tomcatd#!/bin/bash # # Startup script for Jakarta Tomcat # # chkconfig: 345 84 16 # description: Jakarta Tomcat Java Servlet/JSP Container TOMCAT_HOME=/usr/local/tomcat TOMCAT_START=/usr/local/tomcat/bin/startup.sh TOMCAT_STOP=/usr/local/tomcat/bin/shutdown.sh #Necessary environment variables export CATALINA_HOME=/usr/local/tomcat export JAVA_HOME=/usr/java/j2sdk1.4.1_02 export LD_KERNEL_ASSUME="2.2.5" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 #Check for tomcat script if [ ! -f $TOMCAT_HOME/bin/catalina.sh ] then echo "Tomcat not available..." exit fi start() { echo -n "Starting Tomcat: " daemon $TOMCAT_START echo touch /var/lock/subsys/tomcatd # We may need to sleep here so it will be up for apache # sleep 5 #Instead should check to see if apache is up by looking for http.pid } stop() { echo -n $"Shutting down Tomcat: " daemon $TOMCAT_STOP rm -f /var/lock/subsys/tomcatd.pid echo } status() { ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" \ | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt read line < /tmp/tomcat_process_count.txt if [ $line -gt 0 ]; then echo -n "tomcatd ( pid " ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" \ | awk '{printf $1 " "}' echo -n ") is running..." else echo -n "Tomcat is stopped" fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 3 start ;; status) status ;; *) echo "Usage: tomcatd {start|stop|restart|status}" exit 1 esac |
CHKCONFIG# chkconfig --del tomcatd # chkconfig --add tomcatd # chkconfig --level 345 tomcatd on # chkconfig --list tomcatd # chmod +x /usr/local/tomcat/bin/*.sh # service httpd ... |
[root@sting conf]# rcsdiff -c server.xml =================================================================== RCS file: server.xml,v retrieving revision 1.1 diff -c -r1.1 server.xml *** server.xml 2004/09/19 22:40:26 1.1 --- server.xml 2004/09/19 22:40:48 *************** *** 106,118 **** --> <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --> - <!-- <Connector port="8443" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> - --> <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" --- 106,116 ----
Once Tomcat is installed and working, notice that it has a webapps directory. SETUP After downloading the latest AXIS image, expand it and notice that it too has a webapps directory. Within this directory is an axis directory. $ cp -R axis/webapps/axis tomcat/webapps OPTIONAL SETUP $ cp -R tomcat/webapps/axis/WEB-INF/lib/jaxrpc.jar tomcat/common/lib $ cp -R tomcat/webapps/axis/WEB-INF/lib/saaj.jar tomcat/common/lib OPTIONAL SETUP $ download jaf-1_0_2.zip $ cp activation.jar /usr/local/tomcat/common/lib OPTIONAL TEST http://[Tomcat system IP address]:8080/axis/ http://[Tomcat system IP address]:8080/axis/happyaxis.jsp <- Validation