Overview
You are unable to start the Aurea Process (aka SBM / Savvion) Portal Server. In the server.log you find several LinkageErrors.
Example of such error:
Failed to define class com.aurea.ps.clm.workflow.dao.hibernate.RuleManager in Module "deployment.sbm.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/aurea/ps/clm/workflow/dao/hibernate/RuleManager (Module "deployment.sbm.war:main" from Service Module Loader)
Full error:
Caused by: java.lang.NoClassDefFoundError: com/aurea/ps/clm/workflow/dao/hibernate/RuleExecScheduleManager
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_55]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_55]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_55]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
... 49 more
Caused by: java.lang.ClassNotFoundException: com.aurea.ps.clm.workflow.dao.hibernate.RuleExecScheduleManager from [Module "deployment.sbm.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 54 more
11:50:55,950 WARN [org.jboss.modules] (MSC service thread 1-4) Failed to define class com.aurea.ps.clm.workflow.dao.hibernate.RuleManager in Module "deployment.sbm.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/aurea/ps/clm/workflow/dao/hibernate/RuleManager (Module "deployment.sbm.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
at org.jboss.modules.Module.loadModuleClass(Module.java:517)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_55]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_55]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_55]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
at org.jboss.modules.Module.loadModuleClass(Module.java:517)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
...
Solution
LinkageError is a typical sign of having an issue with dependencies or classpath loading. This error indicates that the classes are already loaded by another classloader.
In the case of Aurea Process (aka SBM / Savvion) this error usually occurs when your custom code is placed in the wrong folder. For eg.: in the error message listed in the Overview section you can notice that the error is raised in a custom class: "com.aurea.ps".
The solution is to remove all the custom classes from the SBM_HOME folders and move them under the $SBM_HOME\webapps\sbm\WEB-INF\classes folder. Follow the steps below to achieve this:
- Search the SBM_HOME folder for the class files containing the custom code (in the case of our example we would be looking for the class files containing the code of com.aurea.ps class)
- Remove (just delete) the custom class files containing the custom code from the SBM_HOME folders.
- Copy the required custom class files from your original source (eg. install package provided by the third party) into the following location: $SBM_HOME\webapps\sbm\WEB-INF\classes. This is the location to be used for custom class files.
- Restart Portal Server and EJB Server.
- Your Portal Server should start correctly.