Most of my needs for serving up web content can normally be summed up in a few static pages. To serve those pages up you would usually find an Apache server in the background. Apache is a general purpose server which serves static html data.
Tomcat on the other hand is a JSP server for serving up dynamic data. Tomcat is a server that can interpret the commands it is given. The server ends up running the java code and providing the output to the caller.
I wanted to test out restful web services but in order to do that I needed to get Tomcat up and running. The steps are pretty straight forward.
- create a Tomcat user and group
- download Tomcat
- unpack
- move it to install directory
- setup directory permissions
- create systemd control file
- reload systemd daemon
- restart tomcat
- test Tomcat server
I simply followed the tutorial and within a few minutes had a working system.
https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04
One interesting side note is that this tutorial also described how to setup a systemd process.
The command for starting, stopping or checking the tomcat server are quite similar. They are not difficult commands but despite that fact I quickly put together three scripts so I don’t need to remember the details.
start-tomcat.sh
sudo systemctl start tomcat
stop-tomcat.sh
sudo systemctl stop tomcat
status-tomcat.sh
sudo systemctl status tomcat
Afterword
I had a few small difficulties with tomcat once it was installed. The problems were not Tomcat itself but rather using some of the scripts that ship with tomcat. The script that I was specifically having problems with was version.sh which is located in the /opt/tomcat/bin directory.
In addition to the setup described in the tutorial I also did the following
cd /opt/tomcat chmod 755 bin cd /opt/tomcat/bin chmod 755 *sh chmod 754 *jar
This was only the start. I tried running the version.sh script and ended up seeing the following error.
./version.sh Using CATALINA_BASE: /opt/apache-tomcat-8.5.11 Using CATALINA_HOME: /opt/apache-tomcat-8.5.11 Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.11/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/apache-tomcat-8.5.11/bin/bootstrap.jar:/opt/apache-tomcat-8.5.11/bin/tomcat-juli.jar Error: Could not find or load main class org.apache.catalina.util.ServerInfo
This last little issue was due to the jar files not being readable by a non-tomcat user (ie world file permissions)
Once I changed the permissions to 644 it was then possible to run the version script
Using CATALINA_BASE: /opt/apache-tomcat-8.5.11 Using CATALINA_HOME: /opt/apache-tomcat-8.5.11 Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.11/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/apache-tomcat-8.5.11/bin/bootstrap.jar:/opt/apache-tomcat-8.5.11/bin/tomcat-juli.jar Server version: Apache Tomcat/8.5.11 Server built: Jan 10 2017 21:02:52 UTC Server number: 8.5.11.0 OS Name: Linux OS Version: 4.4.0-53-generic Architecture: i386 JVM Version: 1.8.0_121-b13 JVM Vendor: Oracle Corporation