root@spin-1-16r tomcat6]# yum install tomcat6
First woe:
My woes began when I tried to start up tomcat how I started it up on Rhel:
[root@spin-1-16r tomcat6]# tomcat6 start /usr/sbin/tomcat6: line 30: /logs/catalina.out: No such file or directory
What? How is an error happening when I haven't done anything but use the package installer yum to install tomcat? This time, I read my error carefully and decided to look in the file /usr/sbin/tomcat6, line 30 for the offending code which was:
org.apache.catalina.startup.Bootstrap start >> ${CATALINA_BASE}/logs/catalina.out
Looking through the file, I don't see CATALINA_BASE defined. And then going back to the command prompt, I discover the environment variable CATALINA_BASE isn't defined anywhere:
[root@spin-1-16r webapps]# echo $CATALINA_BASE
More searching and I find that it is defined in /etc/tomcat6/tomcat6.conf and going back to the /usr/sbin/tomcat6 file, I see that the following is commented out:
# Get the tomcat config (use this for environment specific settings) #if [ -z "${TOMCAT_CFG}" ]; then # TOMCAT_CFG="/etc/tomcat6/tomcat6.conf" #fi # #if [ -r "$TOMCAT_CFG" ]; then # . $TOMCAT_CFG #fi
Removing the comments from in front of lines 2-8 and saving solved this first issue.
*EDIT*
Avoid first woe sub-part one:
Remember earlier we went through some troubles to set up Sun's java and even set up some environment variables? We probably want to keep using Sun's java for tomcat. Open up the tomcat config file:
[frog@caffiend ~]# less ~tomcat/conf/tomcat6.conf
At the top of the file, after the comments about what file is for, you should see these lines:
# Where your java installation lives JAVA_HOME="/usr/lib/jvm/java"
Now I'm not 100% that this will over-write the environment variable previously set, nor do I know whether or not that link will end up at the same location or not....so to be safe, I've commented it out on my server:
# Where your java installation lives #JAVA_HOME="/usr/lib/jvm/java"
Second woe:
Now the next woe began. For the purposes of work, the webapp war is dropped into the /usr/share/tomcat6 folder and a symbolic link is created in the webapp folder pointing to the war. This is done because for our testing purposes, we swap various versions of the war, including snapshots, in and out and our deployment code to push out and configure multiple nodes have a hard link to the URL. We could always just change the name of the war to match what we have in the URL in our code, but then we would lose the quick at a glance sanity check of which version we are running. So that is what I did. And I started up tomcat, but EGADS, the war would NOT inflate and deploy. Why, oh why? After much googling on keywords like symbolic link not deploying war tomcat6 fedora14, so on and so forth...and bringing in a second pair of eyes...it hits me like a ton of bricks:
[root@spin-1-16r tomcat6]# ls -l webapps/ total 0 lrwxrwxrwx 1 root root 39 Feb 15 22:10 node-server -> /usr/share/tomcat6/node-server-1.16.war
Do you see it now? It sure took me a while...my sym link did NOT end in .war. And that...is all it took. Changing the sym link and restarting tomcat my directory now looks like:
[root@spin-1-16r webapps]# ls -l total 8 drwxr-xr-x 2 root root 4096 Feb 15 23:52 logs drwxr-xr-x 4 root root 4096 Feb 15 23:52 node-server lrwxrwxrwx 1 root root 39 Feb 15 23:52 node-server.war -> /usr/share/tomcat6/node-server-1.16.war
And thus ends my woes. It looks so simple and duh all summed up here, but man, was it hard to see for me.