IBM Support

SP1/SP2 Install - SecurityException signer information does not match other classes - after HF4 >>checkCerts ycpui.jar yfcui classpath

Troubleshooting


Problem

SP1/SP2 Install - SecurityException signer information does not match other classes - after HF4 >>checkCerts ycpui.jar yfcui classpath

Symptom

After applying sp1 HF4 or installing sp2,
We are facing the following error on clicking the Search button in the Order Console / Inventory Console or when running triggeragent etc.

The root cause of the problem was analyzed to be the presence of the ycpui.jar or any *ui.jar in our classpath. removing it from the class path on weblogic solves the problem.

A sampling of java errors for the above issue is listed below

<Errors>
<Error ErrorCode="java.lang.reflect.InvocationTargetException"<br> ErrorDescription="Error description not available" ErrorRelatedMoreInfo="">
<Attribute Name="ErrorDescription" Value="Error description not available"/>
<Attribute Name="ErrorCode" Value="java.lang.reflect.InvocationTargetException"/>
<Error ErrorCode="java.lang.reflect.InvocationTargetException"<br> ErrorDescription="" ErrorRelatedMoreInfo="">
<Stack>java.lang.reflect.InvocationTargetException:
java.lang.SecurityException: class
"com.yantra.yfs.japi.YFSUserExitException"'s
signer information does not match signer information of
other classes in the same package at
java.lang.ClassLoader.checkCerts(ClassLoader.java:522)
at
java.lang.ClassLoader.defineClass(ClassLoader.java:485)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at
java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at
java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at
java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native
Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
at
com.yantra.yfs.business.order.get.YFSOrderList.getOrderListWhereClause(YFSOrderL ist.java:228)
at
com.yantra.yfs.business.order.get.YFSOrderList.processgetOrderList(YFSOrderList. java:119)
at
com.yantra.yfs.business.order.get.YFSOrderList.getOrderList(YFSOrderList.java:71 )
at
com.yantra.yfs.business.document.YFSDocumentManagerImpl.getDocumentList(YFSDocum entManagerImpl.java:87)
at
com.yantra.yfs.api.YFSApiImpl.getOrderList(YFSApiImpl.java:966)
at java.lang.reflect.Method.invoke(Native Method) at
com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:362)
at
com.yantra.integration.adapter.DefaultIntegrationFlow.invoke(DefaultIntegrationF low.java:104)
at
com.yantra.interop.services.api.ApiRequestDispatcher.invoke(ApiRequestDispatcher .java:65)
at
com.yantra.ycp.ui.backend.YCPUIAPIManager.invokeAPI(YCPUIAPIManager.java:271)<br > at
com.yantra.yfc.ui.backend.servlets.BaseServlet.invokeAPI(BaseServlet.java:117)<b r> at
com.yantra.yfc.ui.backend.servlets.BaseServlet.invokeAPI(BaseServlet.java:87)<br > at
com.yantra.yfc.ui.backend.servlets.ListServlet.invokeAPIs(ListServlet.java:151)< br> at
com.yantra.yfc.ui.backend.servlets.ListServlet.processRequest(ListServlet.java:6 7)
at
com.yantra.yfc.ui.backend.servlets.ConsoleServlet.callServlet(ConsoleServlet.jav a:179)
at
com.yantra.yfc.ui.backend.servlets.ConsoleServlet.processRequest(ConsoleServlet. java:103)
at
com.yantra.yfc.ui.backend.servlets.BaseServlet.doPost(BaseServlet.java:315)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265 )
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200 )
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContex t.java:2495)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:220 4)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) </Stack>
</Error>
<Stack>com.yantra.yfc.util.YFCException at
com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:393)
at
com.yantra.integration.adapter.DefaultIntegrationFlow.invoke(DefaultIntegrationF low.java:104)
at
com.yantra.interop.services.api.ApiRequestDispatcher.invoke(ApiRequestDispatcher .java:65)
at
com.yantra.ycp.ui.backend.YCPUIAPIManager.invokeAPI(YCPUIAPIManager.java:271)<br > at
com.yantra.yfc.ui.backend.servlets.BaseServlet.invokeAPI(BaseServlet.java:117)<b r> at
com.yantra.yfc.ui.backend.servlets.BaseServlet.invokeAPI(BaseServlet.java:87)<br > at
com.yantra.yfc.ui.backend.servlets.ListServlet.invokeAPIs(ListServlet.java:151)< br> at
com.yantra.yfc.ui.backend.servlets.ListServlet.processRequest(ListServlet.java:6 7)
at
com.yantra.yfc.ui.backend.servlets.ConsoleServlet.callServlet(ConsoleServlet.jav a:179)
at
com.yantra.yfc.ui.backend.servlets.ConsoleServlet.processRequest(ConsoleServlet. java:103)
at
com.yantra.yfc.ui.backend.servlets.BaseServlet.doPost(BaseServlet.java:315)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265 )
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200 )
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContex t.java:2495)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:220 4)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) </Stack>
</Error>
</Errors>


----------------------------

I am running an agent server on SP2. When I run triggeragent.cmd on SCHEDULE.0001 I get the attached error

2003-08-21 14:13:12,275:INFO : Successfully started all services for Server: AlldersAgent : IntegrationAdapter
2003-08-21 14:14:01,596:ERROR : Could not handle non reprocess error : ErrorNotifier
2003-08-21 14:14:01,596:ERROR : [1061471641596] class "com.yantra.yfs.japi.YFSUserExitException"'s signer information does not match signer informati
on of other classes in the same package: ErrorNotifier
2003-08-21 14:14:01,596:ERRORDTL: [1061471641596]java.lang.SecurityException: class "com.yantra.yfs.japi.YFSUserExitException"'s signer information do
es not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(Unknown Source)

Cause

Resolving The Problem

Resolution - Remove *ui.jar from the classpath for the Appserver startup (startWebLogic.sh or setEnv.sh as the case may be) and restart the appserver.

Explanation - sp1 HF4 and sp2 introduces some elements of checking certificates on the jar files being used. Our *ui.jar are signed and we do package a few classes (common classes) in both ui jars and backend jars.

This error surfaces depending on the inclusion or order of jar files in CLASSPATH. One reason for this is that class 'com.yantra.yfs.japi.YFSUserExitException' is present both in 'ycpui.jar' and 'yfs.jar' files. In most of the scenarios, the one present in yfs.jar file is needed, so that jar file is sufficient to be in CLASSPATH. With these changes probably error should go away.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

PRI49091

Product Synonym

[<p><b>]Fact[</b><p>];

Document Information

Modified date:
16 June 2018

UID

swg21535209