Running a Stand-alone Tomcat 5.0.19 on NetWare 6

For those of you out there who wish to be on the cutting (bleeding) edge of development, here is a little tip on how to get Tomcat 5 running on
NetWare. This tip is a "work in progress" tip, as some issues still
need to be sorted out, but it should be enough to get started with
Tomcat 5.

Like Novell does, we'll install Tomcat 5 to the "sys:/tomcat" directory.
Create the directory "sys:/tomcat/5019", and extract the
"jakarta-tomcat-5.0.19.zip" to this directory. Your directory structure
should now look something like:

sys:/tomcat/5019/bin
sys:/tomcat/5019/lib
sys:/tomcat/5019/common

-and so forth.

The "bin" directory contains scripts to launch Tomcat, but since they
are made for either *nix or Windows, they only serve as inspiration for
what to do on NetWare.

I've made another init script for NetWare, based on the NetWare Tomcat
3.3 script and the *nix Tomcat 5 scripts, it's called "catalina.ncf" and
is included in the tomcat5.zip file with this tip. Extract the
"catalina.ncf" script to the "sys:/tomcat/5019/bin" directory. The
script contains a line for running tomcat using the security manager,
and one for running without (commented out). Try out one or the other
and see what works for you.

Tomcat usually uses port 8009 for AJP communication with apache JK1/2.
This is no good, as Novell Remote Manager runs on this port too. Usually
port 8019 is used instead on NetWare, so open
"sys:/tomcat/5019/conf/server.xml" in a text editor and search for
'Connector port="8009" '. Change 8009 to 8019 instead - or just use the
server.xml file from the tomcat5.zip file included with this tip.

This might be a good time to add an admin account to "tomcat-users.xml"
so open up "sys:/tomcat/5019/conf/tomcat-users.xml" and add the line
"<user username="admin" password="changeme" roles="standard,manager,admin"/>". Remember to change the password "changeme" to something else. Again, you can just use the
tomcat-users.xml from the zip file.

This is where tings start to get messy. As a few people in the
novell.devsup.opensource group have found out, Tomcat 5 has a problem
with compiling JSP pages. The JSP scripts are translated to java source
just fine, but compilation fails with an io exception. It appears that
the ".class" file is in fact compiled, but with a ".classtmp" extension,
and renaming to ".class" is what actually fails. I've coded around the
faulty renameTo() in SmapUtil.java and recompiled a new
jasper-compiler.jar that appears to work. Feedback is more than welcome!

The new jar is included in the tomcat5 zip archive, copy it to
"sys:/tomcat/5019/common/lib". This issue might also be solved by
upgrading to a later JVM somtime in the future, so take a look at
" http://forge.novell.com/modules/xfmod/project/?jvm ", and make sure you
have the latest JVM. At the time of writing, the latest JVM is 1.4.2 SP1.

Now it's about time to try it out. With the current configuration,
Tomcat 5 will run nicely along with the Tomcat engine already included
in NetWare (used for NetStorage, WebAccess and so forth), but if you've
got another standalone Tomcat instance running on ports 8080 and 8019,
you need to stop that one first. To start up Tomcat 5, run the following
commands from the console:

search add sys:tomcat\5019\bin
catalina.ncf start

Start up your favorite browser, and have a look at
"http://<servername>:8080", to make sure Tomcat is working. Once you
feel confident that everything is ok, you can always add the above two
commands to your "autoexec.ncf".

Tomcat 5 can be integrated with Apache 1.3 or 2.0 using either mod_jk or
mod_jk2. Since we are talking "cutting edge" stuff, here are a few
pointers for setting up jk2 with Apache 2.0. Please note that mod_jk2
still has some "issues". On my system it "soft abends" when unloading
apache2, so you might want to stick with mod_jk if you want the extra
stability. Mod_jk2 was kindly made available for NetWare on Güenter
Knauf's website, so head over there and get the latest binaries. A short guide to mod_jk2 is also available Güenter's site.

Copy the downloaded "mod_jk2.nlm" to "sys:/apache2/modules". From the
zip file included with this tip, extract "mod_jk2.conf" and
"workers2.properties" to "sys:/apache2/conf" and the add the following
line to your "httpd.conf":

Include sys:apache2/conf/mod_jk2.conf

You should now be ready to run apache2 with Tomcat5/jk2 integration. Try
it out by starting apache2 and head over to
"http://<servername>/jsp-examples/" or perhaps
"http://<servername>/admin/", to check out your current Tomcat
configuration.

Hope this little tip gives all you cutting edge people enough info to
get started with Tomcat 5 on NetWare.