Java 5 JDK and Jakarta Tomcat 5.5 in Ubuntu Server Installation

These are the steps I took to install Jakarta Tomkat 5.5 in conjunction with Java 2 SDK in Ubuntu server.

  1. Login as root, you can also use “su” though I prefer to login as root.
  2. apt-get install sun-java5-jdk
    • This will install Java 2 SDK (1.5), ubuntu will start downloading packages that are not found in your system.
  3. apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
    • Of course jakarta-tomcat 5.5, I’m using 5.5 since this supports java 1.5
  4. Now here’s the tricky part, location for Java and jakarta-tomcat
    • Java’s location is in /usr/lib/jvm/java-1.5.0-sun
    • Jakarta-Tomcat’s location is in /usr/share/tomcat5.5
      • We will need these location for the export configurations to be written in the .bashrc
  5. Now, open .bashrc in your favorite text editor, I used vim
  6. At the end of the file add these:

    export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
    export CLASSPATH="/usr/share/tomcat5.5/common/lib/jsp-api.jar;/usr/share/tomcat5.5/common/lib/servlet-api.jar"
    export CATALINA_HOME=/usr/share/tomcat5.5
  7. Now save the file and exit, then log back in. This is required for the export script to be set.
  8. Before starting the server, the default port the installer set is 8180 instead of the 8080 port that Tomcat uses. To change this, go to /usr/share/tomcat5.5/conf/ and open the file server.xml. Locate the line:

    ...Connector port="8180" maxHttpHeaderSize="8192"...

    and change 8180 to 8080. Save and exit. Now your ready to test the server.
  9. Now try the server if it starts, /usr/share/tomcat5.5/bin/startup.sh You should see something like this:

    Using CATALINA_BASE: /usr/share/tomcat5.5
    Using CATALINA_HOME: /usr/share/tomcat5.5
    Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp
    Using JRE_HOME: /usr/lib/jvm/java-1.5.0-sun
  10. Shutting down the server is just /usr/share/tomcat5.5/bin/shutdown.sh
  11. Now, during installation of tomcat, Ubuntu automatically adds a startup and shutdown script for ubuntu to use as it starts up or shutsdown in /etc/init.d/ folder. Filename is tomcat5.5. As the server finishes starting up, you will notice tomcat isn’t running at all. One possible problem is that the script didn’t use the correct path for the java 2 sdk. You can check the boot log in /var/log/. Check if during boot up, tomcat5.5 encountered problems. For the problem stated above, you can fix this by going to /etc/default/ and edit the tomcat5.5 file. Locate the line:

    #JAVA_HOME=/usr/lib/j2sdk1.4-sun

    remove the ‘#’ and change it to…

    JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

    or wherever your java directory is.After that, restart the server and see if tomcat was successfully started.

    /etc/init.d/tomcat5.5 status

Edit: Problem encountered:

  • Tomcat does not load in Ubuntu 8.04
    Found a little problem loading Tomcat 5.5 under Ubuntu 8.04, it either fails or white screen just appears. I don’t know what happened from 6.04 to 8.04 but once I compared the init.d/tomcat5.5 startup script from 6.04 and 8.04, there WERE changes to the scripts. I replaced the new tomcat5.5 script in 8.04 with the old one from 6.04 and the server started properly after a server restart. I don’t know why but this may have something to do with permissions and I have yet to trace the script.

  • java.lang.ClassNotFoundException: org.apache.jasper.tagplugins.jstl.If
    • The problem here is that the above name is incomplete… what it should have been is org.apache.jasper.tagplugins.jstl.core.*
    • Now, to fix the problem, locate /var/lib/tomcat5.5/webapps/jsp-examples/WEB-INF/tagPlugins.xml and open it with your text editor… I used vim. Now edit each line of code that has org.apache.jasper.tagplugins.jstl in it and add “.core” after jstl. What you will see after editing the code will be…
    • org.apache.taglibs.standard.tag.rt.core.IfTag

      org.apache.jasper.tagplugins.jstl.core.If

      org.apache.taglibs.standard.tag.common.core.ChooseTag

      org.apache.jasper.tagplugins.jstl.core.Choose

      org.apache.taglibs.standard.tag.rt.core.WhenTag

      org.apache.jasper.tagplugins.jstl.core.When

      org.apache.taglibs.standard.tag.common.core.OtherwiseTag

      org.apache.jasper.tagplugins.jstl.core.Otherwise

      org.apache.taglibs.standard.tag.rt.core.ForEachTag

      org.apache.jasper.tagplugins.jstl.core.ForEach

  • SEVERE: The scratchDir you specified: [folder_path] is unusable.
    • Sidenote: took me 2 days to figure out why this was happening (X_x)
    • Based from the Catalina logs, the folders under webapps was not accessible by tomcat5.
    • Now looking under all processes running ( ps command ), most bootup services were running under root (mysql, apache, etc ) but tomcat5 was not.
    • If I start tomcat5 when I logged into the console as root, the problem disappears. This lead me to believe this might have been the Tomcat5 user was not given the correct privileges.
    • Work-around 1: Elevate Tomcat5 user to root access level.
    • Work-around 2: Go to /etc/init.d/ and open Tomcat5.5 under any text editor ( I used vim ). Locate the line TOMCAT5_USER=tomcat55 and change it to TOMCAT5_USER=root . Restart your server or you can also execute the restart command for Tomcat5.5 in init.d folder

sources:

One Reply to “Java 5 JDK and Jakarta Tomcat 5.5 in Ubuntu Server Installation”

Leave a Reply

Your email address will not be published. Required fields are marked *