Skip to main content

Support Article

NoClassDefFoundError when data pages are run

SA-47466

Summary



NoClassDefFoundError occurs when data pages sourced form REST connections are run. However, they work in other environments with the same rules and the end points are reachable through other systems.


Error Messages



Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:72) ~[httpclient-4.5.2.jar:?]
at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:81) ~[httpclient-4.5.2.jar:?]
at com.pega.pegarules.integration.engine.internal.client.rest.ComponentsRESTClient.applySSLSocketFactory(ComponentsRESTClient.java:894) ~[printegrint.jar:?]
at com.pega.pegarules.integration.engine.internal.client.rest.ComponentsRESTClient.getHttpClient(ComponentsRESTClient.java:920) ~[printegrint.jar:?]
at com.pega.pegarules.integration.engine.internal.client.rest.ComponentsRESTClient.invokeRESTClient(ComponentsRESTClient.java:196) ~[printegrint.jar:?]
at com.pega.pegarules.integration.engine.internal.connect.rest.RESTConnector.invokeREST(RESTConnector.java:1545) ~[printegrint.jar:?]
at com.pega.pegarules.integration.engine.internal.connect.rest.RESTConnector.executeRequest(RESTConnector.java:1982) ~[printegrint.jar:?]



Steps to Reproduce



Run a data page which is sourced from a REST connection.


Root Cause



A defect or configuration issue in the operating environment. A class conflict was created when a jar file was imported using the Import Wizard. This was found by navigating to SMA > Advanced > ETier Runtime Environment and looking up the mentioned class: org.apache.commons.logging.LogFactory.

A working system retrieved this class from pegajdbc://481445514:0/commons-logging-1.2.jar. However, the system on which the error occurred, referenced a different jar file that is not provided out-of-the-box.



Resolution

Perform the following local-change:

Delete the imported jar from the database using the following query:

delete from <your_rules_schema>.pr_engineclasses where pzjar = 'your_jar';



Suggest Edit

Published November 20, 2017 - Updated April 25, 2018

Did you find this content helpful?

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Ready to crush complexity?

Experience the benefits of Pega Community when you log in.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us