Spectrum Tomcat will not start after 9.2.2 install

Document ID : KB000049218
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

After upgrading to Spectrum version 9.2.2 tomcat fails to start due to the OneClickService.conf(Windows) / catalina.sh (Solaris/Linux) not being updated during the install. Since customized tomcat memory settings are stored in the $SPECROOT/custom/common/config/tomcat-server-config.xml file and all changes in the custom directory persist through an install, the existence of this file prevents the OneClickService.conf(Windows) / catalina.sh (Solaris/Linux) files from being rebuilt during the install process.

Solution:

Ideally, prior to upgrading Spectrum you should make note of the customized memory settings in $SPECROOT/custom/common/config/tomcat-server-config.xml (-Xmx), then remove the file. Proceed with the Spectrum Install, then once complete, configure the web server memory through the Administration web page.

If the above procedure was not done, then after the install tomcat will fail to start. The following error will be seen in the tomcat log, stdout.log (Windows)/catalina.out (Solaris/Linux):

java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory      at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:60)Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)      at java.security.AccessController.doPrivileged(Native Method)      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)      at java.lang.ClassLoader.loadClass(ClassLoader.java:247)      ... 1 mor

To resolve this you will need to manually modify the OneClickService.conf(Windows) / catalina.sh (Solaris/Linux) as follows:

  1. Add C:/win32app/Spectrum/tomcat\\bin\\tomcat-juli.jar;C:/win32app/Spectrum/tomcat\\classes to the java.class.path (Windows)/CLASSPATH (Solaris/Linux) definition entry

  2. Remove the common directory from the java.endorsed.dirs (Windows)/ JAVA_ENDORSED_DIRS (Solaris/Linux) definition entry

Fixed entries for Windows (both entries are 1 line each):

jvm_opt=-Djava.class.path=C:/win32app/Spectrum/tomcat\\bin\\bootstrap.jar;C:/win32app/Spectrum/Java\\lib\\tools.jar;C:/win32app/Spectrum/Java\\jre\\lib\\heapdebug.jar;C:/win32app/Spectrum/tomcat\\bin\\tomcat-juli.jar;C:/win32app/Spectrum/tomcat\\classesjvm_opt=-Djava.endorsed.dirs=C:/win32app/Spectrum/tomcat/lib/endorsed

Fixed entries for Solaris/Linux (both entries are 1 line each):

CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar:"$JAVA_HOME"/jre/lib/heapdebug.jar:$JAVA_HOME/bin/tomcat-juli.jar:$JAVA_HOME/tomcat/classes  JAVA_ENDORSED_DIRS=$CATALINA_HOME/lib/endorsed 

Make note of the customized memory settings in $SPECROOT/custom/common/config/tomcat-server-config.xml (-Xmx), then remove the file. Start tomcat and use the Spectrum OneClick Administration page to configure the web server memory to the value you just made note of. This will regenerate a new tomcat-server-config.xml and a new OneClickService.conf will be generated from tomcat-server-config.xml.