Comment 4 for bug 1232258

Revision history for this message
Tim Donohue (tdonohue) wrote :

I ran into this bug today on Ubuntu Server 14.04.

I could be wrong, but I'm not sure this is an issue of missing symbolic links, but rather a minor misconfiguration of catalina.properties on Ubuntu 14.04. Specifically, the "server.loader" and "shared.loader" settings are referencing CATALINA_HOME instead of CATALINA_BASE.

So, for example, on Ubuntu 12.04, the default /var/lib/tomcat7/conf/catalina.properties sets these properties as the following:

server.loader=/var/lib/tomcat7/server/classes,/var/lib/tomcat7/server/*.jar
shared.loader=/var/lib/tomcat7/shared/classes,/var/lib/tomcat7/shared/*.jar

However, on Ubuntu 14.04, the hardcoded "/var/lib/tomcat7/" paths have been replaced with "${catalina.home}", so it looks like this:

server.loader=${catalina.home}/server/classes,${catalina.home}/server/*.jar
shared.loader=${catalina.home}/shared/classes,${catalina.home}/shared/*.jar

Unfortunately, "${catalina.home}" translates to "/usr/share/tomcat7"... which is not the proper setting. As we know, these directories don't exist under "/usr/share/tomcat7" (CATALINA_HOME)

The correct setting should be replacing those with ${catalina.base}, as all the referenced directories do exist under "/var/lib/tomcat7" (CATALINA_BASE). So, the correct settings seem to be:

server.loader=${catalina.base}/server/classes,${catalina.base}/server/*.jar
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/*.jar

This same misconfiguration existing in both of these catalina.properties files:
 * /var/lib/tomcat7/conf/catalina.properties
 * /usr/share/tomcat7/skel/conf/catalina.properties (installed by the tomcat7-user package)

Obviously, creating the symbolic links from these directories in /var/lib/tomcat7/ to /usr/share/tomcat7/ would also be a possible solution. But, it's different than how things were setup in Ubuntu 12.04, when the configurations in catalina.properties were just using CATALINA_BASE directly.