JBoss Community

jBPM 5.0.1 Configuring persistence

created by Jim Hill in jBPM - View the full discussion

I am converting my jBPM 4.4 code over to use 5.0.1 and am trying to configure persistence.  When I run my unit tests to see if everything is working as it did in 4.4 I am getting this error:

 

No Persistence provider for EntityManager named org.jbpm.persistence.jpa

 

See the end for the full stack trace.  I have been following the user guide and configured a datasource.xml file and set up the EntityManagerFactory and used it in the creation of the KnowledgeSession.  What am I still missing?  Any help would be appreciated.

 

Jim

 

      EntityManagerFactory emf =

          Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa" );

      Environment env = KnowledgeBaseFactory.newEnvironment();

      env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );

      Collection<StatefulKnowledgeSession> ksConfigs =

                                         kbase.getStatefulKnowledgeSessions();

      if (!ksConfigs.isEmpty()) {

        KnowledgeSessionConfiguration[] sessionArray =

                         (KnowledgeSessionConfiguration[])ksConfigs.toArray();

        if (ksConfigs.size() == 1) {

          sessionConfig = sessionArray[0];

        }

        if (ksConfigs.size() > 1) {

          throw new Exception("More than one KnowledgeSessionConfiguration" +

            " object exists.  We were only expecting one");

        }

      }

 

      if (ksession == null) {

       ksession = kbase.newStatefulKnowledgeSession(sessionConfig, env );

      }  

 

Stack Trace:

 

"Exception in constructor: testStartProcess (java.lang.ExceptionInInitializerError

at xxxxxxxxxxxxxxxxxxxxxxxxxx.SelectiveConsumerTest.&lt;init&gt;(Unknown Source)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at junit.framework.TestSuite.createTest(TestSuite.java:61)

at junit.framework.TestSuite.addTestMethod(TestSuite.java:283)

at junit.framework.TestSuite.&lt;init&gt;(TestSuite.java:146)

at org.junit.internal.runners.JUnit38ClassRunner.&lt;init&gt;(JUnit38ClassRunner.java:67)

at org.junit.internal.builders.JUnit3Builder.runnerForClass(JUnit3Builder.java:14)

at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)

at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)

at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)

at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)

at junit.framework.JUnit4TestAdapter.&lt;init&gt;(JUnit4TestAdapter.java:31)

at junit.framework.JUnit4TestAdapter.&lt;init&gt;(JUnit4TestAdapter.java:24)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:386)

at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:911)

at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:768)

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named org.jbpm.persistence.jpa

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)

at xxxxxxxxxxxxxxxxxxxxxxxxxx.SelectiveConsumer&lt;init&gt;(Unknown Source)

at xxxxxxxxxxxxxxxxxxxxxxxxxx.SelectiveConsumer&lt;clinit&gt;(Unknown Source)

Reply to this message by going to Community

Start a new discussion in jBPM at Community