Support Article
Getting NoClassDefFound Errors in runtime processing
SA-574
Summary
The user observes NoClassDefFound errors on screen, in multiple places on various work flows.
The administrator observes multiple stack traces in the log files with the line
Caused by: java.lang.NoClassDefFoundError: com/pega/apache/log4j/spi/ThrowableInformation
associated with a variety of primary stack traces for each screen.
The administrator saw a correlation with external service calls made through HTTP and any exception returned in service response.
Error Messages
2014-08-11 06:13:36,390 [fault (self-tuning)'] [ STANDARD] [ ] ( etier.mdb.PRJMSListener) ERROR - PRPC Engine invocation failed, javax.ejb.EJBException: EJB Exception: : java.lang.RuntimeException: Problem during method invocation (invokeEngine)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingException(PRBootstrap.java:423)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
at com.pega.pegarules.internal.etier.ejb.EngineBMT_h449u3_ELOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:39)
at com.pega.pegarules.internal.etier.ejb.EngineBMT_h449u3_ELOImpl.invokeEngine(Unknown Source)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.callEngine(PRJMSListener.java:205)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.init(PRJMSListener.java:172)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.onMessage(PRJMSListener.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:349)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:390)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:439)
at com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot.onMessage(PRJMSListenerBoot.java:91)
at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:583)
at weblogic.ejb.container.internal.MDListener.run(MDListener.java:902)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.NoClassDefFoundError: com/pega/apache/log4j/spi/ThrowableInformation
at com.pega.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:155)
at com.pega.apache.log4j.Category.forcedLog(Category.java:391)
at com.pega.apache.log4j.Category.error(Category.java:322)
at com.pega.pegarules.priv.LogHelper.error(LogHelper.java:1459)
at com.pega.pegarules.integration.engine.internal.services.listener.ListenerStateManagerImpl$7.run(ListenerStateManagerImpl.java:1087)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1032)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:733)
at com.pega.pegarules.integration.engine.internal.services.listener.ListenerStateManagerImpl.createMDBListener(ListenerStateManagerImpl.java:1062)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListenerServant.invoke(JMSListenerServant.java:100)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:312)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:221)
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:349)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:390)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingException(PRBootstrap.java:412)
... 20 more
; nested exception is: java.lang.RuntimeException: Problem during method invocation (invokeEngine)
Steps to Reproduce
Multiple.
Root Cause
The root cause of this problem is defect/misconfiguration in the PRPC operating environment.
The Administrator identified this occured when a service failure was occuring.
Caused by: java.lang.NoClassDefFoundError: com/pega/pegarules/session/internal/engineinterface/etier/engine/PRDiagnosticStream
indicates a database connectivity error is likely.
With the HFIX-9804 diagnostic installed the log showed a security exception was occuring during classloading from the database.
Resolution
Installed diagnostic hotfix-9804 to get additional information which confirmed error trying to load class from database was occuring.
There are three options that can resolve this issue:
1. Set the downgrade-untrusted-principal to false.
2. Enable "Cross Domain Security Between WebLogic Server Domains".
3. Enable "global trust between domains".
Published June 12, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.