Support Article
Pega 7.1.7 failing startup NoClassDefFound BouncyCastleProvider
SA-7804
Summary
Admin trying to deploy Pega 7.1.7 ear file on WebSphere and startup is failing
Error Messages
[3/18/15 17:59:55:370 EDT] 00000013 PRBootstrap E com.pega.pegarules.internal.bootstrap.PRBootstrap Problem during method invocation (doStartup)
java.lang.NoClassDefFoundError: org.bouncycastle.jce.provider.BouncyCastleProvider
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:94)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:171)
at com.pega.pegarules.exec.internal.PRExecProviderImpl.getCrypto(PRExecProviderImpl.java:383)
at com.pega.pegarules.deploy.internal.archive.ParUtilsImpl.<clinit>(ParUtilsImpl.java:159)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:237)
at com.pega.pegarules.deploy.internal.PRDeployProviderImpl.getParUtils(PRDeployProviderImpl.java:96)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineStartup.initEngine(EngineStartup.java:506)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._initEngine_privact(EngineImpl.java:165)
Steps to Reproduce
Deploy prpc_j2ee14.ear on WebSphere and try to start system
Root Cause
The root cause of this problem is a defect in Pegasystems’ code/rules. The extractedFiles directory which should be created in the Web Tier temporary directory but instead is trying to create this directory in the java.io.tmpdir. That directory is not writable by the user running Pega 7.1.7. In this case that /tmp/extractedFiles directory was being used by the BIX 7.1.7 command line extraction.
Resolution
This issue is resolved through the following local change:
To specifiy a unique location for Pega 7.1.7 and the BIX command line extraction to use you can do one of the following:
Specify a JVM argument to redirect the files to a location of your choice.
-Djava.io.tmpdir=/myPega717tmpdir for Pega 7.1.7
-Djava.io.tmpdir=/myBIX717tmpdir for BIX
Or in your prbootstrap.properties file add a line like this:
com.pega.pegarules.bootstrap.tempdir=/myPega717tmpdir
com.pega.pegarules.bootstrap.tempdir=/myBIX17tmpdir
Published January 31, 2016 - 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.