Hide Forgot
securitylevel_name: Public When creating new KnowledgeSession using JPAKnowledgeService I get ClassNotFoundException: Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory This affect both DEV1 and DEV2 builds and works fine in Drools-5.2.0.Final. See JBRULES-3053 Full stacktrace: java.lang.reflect.InvocationTargetException org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:130) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54) at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122) at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94) 27 lines not shown Caused by null sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54) at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122) at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94) 27 lines not shown Caused by java.lang.ClassNotFoundException: Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory org.jbpm.process.instance.ProcessRuntimeImpl.loadClass(ProcessRuntimeImpl.java:101) at org.jbpm.process.instance.ProcessRuntimeImpl.initProcessInstanceManager(ProcessRuntimeImpl.java:75) at org.jbpm.process.instance.ProcessRuntimeImpl.<init>(ProcessRuntimeImpl.java:64) at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:10) at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:6) at org.drools.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12) at org.drools.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:359) at org.drools.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1260) at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:116) at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:109) at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:372) at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:352) at org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:175) at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:101) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54) at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122) at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94) 27 lines not shown Caused by Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:92) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at org.jbpm.process.instance.ProcessRuntimeImpl.loadClass(ProcessRuntimeImpl.java:99) at org.jbpm.process.instance.ProcessRuntimeImpl.initProcessInstanceManager(ProcessRuntimeImpl.java:75) at org.jbpm.process.instance.ProcessRuntimeImpl.<init>(ProcessRuntimeImpl.java:64) at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:10) at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:6) at org.drools.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12) at org.drools.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:359) at org.drools.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1260) at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:116) at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:109) at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:372) at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:352) at org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:175) at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:101) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54) at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122) at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94) 27 lines not shown
Link: Added: This issue depends JBRULES-3053
I didn't see jbpm-persistence-jpa.jar existed in Drools-5.2.0.Final either.
No, it wasn't there, but the dependency wasn't there either. I just tried removing all jbpm-*.jar from BRMS-5.2.0-DEV3 and the exception is gone. Problem probably is that Drools-5.2.0.Final doesn't contain any jbpm libraries, but BRMS contains some of them so it expects to have jbpm-persistence as well.
The 4 jbpm-*.jar (not including jbpm-persistence-jpa.jar) in BRMS 5.2.0-Dev3 are included by drools-camel and drools-camel-server dependencies. Not sure we could exclude them in the release.
Could we not exclude drools-camel*? According to ERD Drools Execution server support is deffered (see ERD: BRMS-PR-05).
Yes, you are right, that feature is deferred. I will exclude drools-camel* in next brms-p ER1 build.
jbpm-bpmn2,jbpm-flow-builder, jbpm-flow will still be included as guvnor-webapp's dependencies and drools-pipeline's dependencies. Compare to BRMS-5.2.0-dev3, only jbpm-workitems are excluded in drools-engine. This issue might still need further investigation.
Link: Added: This issue is incorporated by BRMS-644
This issue conflicts with Bug 727562 here. It seems that we can't get away with jbpm-flow and jbpm-flow-builder in BRE.
jbpm-persistence will need to be added. Prakash has already agreed to this. If there are no jBPM jars, Drools will persistence without jbpm-persistence. The moment there is jbpm core/builder on the path it'll need jbpm persistence.
Marked as release note not required as this appears to be an issue between dev builds.
Ryan, please add jbpm-persistence jar to the build. That is the only viable way this issue can be resolved. And what will be supported in this release is only drools persistence.. Please add this to ER3.
Yes, this has been added in ER3. I am preparing to pass the ER3 to QE.
In ER3 jbpm-persistence was added and the problem is gone.