Re-Installing Spectrum 9.2.0 base over an existing install (i.e. 9.2.2) fails during the running of the post-install SPMDEConfig.cus script

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

Description:

When adding new components to Spectrum and new extraction key is needed. To use the new extraction key, the original 9.2.0 base install is needed.

Run the 9.2.0 base install to use the new extraction key to add additional functionality (i.e. Spectrum Performance Manager) to existing install 9.2.2 environment. The re-install process fails when trying to execute custom SPMDEConfig.cus script with the following error:

Figure 1

Figure 2

From the $SPECROOT/Install-Tools/LOGS/<install date>/Post_install.log file:

     ****************************************
     running Custom Script Install-Tools/CUS/SPMDEConfig.cus
     SPMDEConfig Invoked
     Reading: C:/win32app/Spectrum/tomcat/webapps/spectrum/WEB-INF/spm-oc/config/spm-app-config.xml
     Exception in thread "main" java.lang.NoClassDefFoundError: com/aprisma/util/install/XMLEditor
     at com.aprisma.spectrum.app.spm.install.SPMDEConfig.(SPMDEConfig.java:129)
     at com.aprisma.spectrum.app.spm.install.SPMDEConfig.main(SPMDEConfig.java:29)
     Caused by: java.lang.ClassNotFoundException: com.aprisma.util.install.XMLEditor
     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)
     ... 2 more
     Script Install-Tools/CUS/SPMDEConfig.cus has FAILED
     ****************************************

Solution:

This problem happens because Spectrum 9.2.2 uses the $SPECROOT/tomcat/lib path for the jar files on the post-install script but Spectrum 9.2.0 base uses the $SPECROOT/tomcat/common/lib path and this area doesn't have all the necessary jar files to run the post-install script

In this case the problem is with the post install customer scripts themselves (i.e. SPMDEConfig.cus script for Spectrum Performance Manager) were Spectrum 9.2.0 base makes reference in this script:

CLIENTSPM_JAR=$TOMCAT_ROOT/common/lib/webspm.jar
COMMON_JARS=$TOMCAT_ROOT/common/lib

But 9.2.2 makes this reference:

CLIENTSPM_JAR=$TOMCAT_ROOT/lib/webspm.jar
COMMON_JARS=$TOMCAT_ROOT/lib

To resolve this problem the following workaround can be used:

  1. Copy all the files (and sub-directories) from $SPECROOT/tomcat/lib to $SPECROOT/tomcat/common/lib
    Note: if the folder path $SPECROOT/tomcat/common/lib doesn't exist, create it
  2. Stop all the Spectrum services including processd
  3. Rerun the Spectrum 9.2.0 base install process (make sure to use the new extraction key provided)
  4. Stop all the Spectrum services
  5. Run the Spectrum 9.2.2 install again

Note: This problem happens when you need to use a new Spectrum extraction key with new modules, as example if the new extraction key has Spectrum Service Manager, the post-install process will fail while running the slmWebOp.cus script too, so the above workaround can be applied to this post install custom script as well.