Hi!

I am working already for 3 days, trying to configure bitronix with spring
and drools.

I defined 

1. persistence unit:

<persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
                <provider>org.hibernate.ejb.HibernatePersistence</provider>
                <jta-data-source>jdbc/DS1</jta-data-source>
                <class>org.drools.persistence.info.SessionInfo</class>
        
<class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
         <class>org.drools.persistence.info.WorkItemInfo</class>
                <exclude-unlisted-classes>true</exclude-unlisted-classes>
                <properties>
                        <property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle10gDialect" />
                        <property name="hibernate.connection.autocommit" 
value="false" />
                        <property name="hibernate.max_fetch_depth" value="3" />
                        <property name="hibernate.show_sql" value="true" />
                        <property 
name="hibernate.current_session_context_class" value="jta" />
                        <property name="hibernate.connection.driver_class"
value="oracle.jdbc.xa.client.OracleXADataSource" />
                        <property name="hibernate.jndi.class"
value="bitronix.tm.jndi.BitronixInitialContextFactory"/> 
                        <property 
name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.BTMTransactionManagerLookup" />
                </properties>
        </persistence-unit>

2. in my application context:
<!--  Bitronix Transaction Manager embedded configuration -->
        <bean id="oracleDataSource"
class="bitronix.tm.resource.jdbc.PoolingDataSource"
                init-method="init" destroy-method="close">
                <property name="className"
value="oracle.jdbc.xa.client.OracleXADataSource" />
                <property name="uniqueName" value="jdbc/DS1" />
                <property name="maxPoolSize" value="5" />
                <property name="allowLocalTransactions" value="true" />
                <property name="testQuery" value="SELECT 1 FROM DUAL" />
                <property name="driverProperties">
                        <props>
                                <prop key="user">myuser</prop>
                                <prop key="password">myuser</prop>
                                <prop key="URL">myurl</prop>
                        </props>
                </property>
        </bean>


        <bean id="btmConfig" factory-method="getConfiguration"
                class="bitronix.tm.TransactionManagerServices">
                <property name="serverId" value="spring-btm" />
        </bean>


        <bean id="BitronixTransactionManager"
factory-method="getTransactionManager"
                class="bitronix.tm.TransactionManagerServices" 
depends-on="btmConfig"
                destroy-method="shutdown" />


        <bean id="JtaTransactionManager"
                
class="org.springframework.transaction.jta.JtaTransactionManager">
                <property name="transactionManager" 
ref="BitronixTransactionManager" />
                <property name="userTransaction" 
ref="BitronixTransactionManager" />
        </bean>
        <!-- end of Bitronix Transaction Manager embedded configuration -->

3. and in the code:
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
                Environment env = KnowledgeBaseFactory.newEnvironment();
                env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
                env.set(EnvironmentName.GLOBALS, new MapGlobalResolver());
                env.set(EnvironmentName.TRANSACTION_MANAGER,
TransactionManagerServices.getTransactionManager());
                ksession = 
JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null,
env);

However in the last code I get:

Caused by: java.lang.IllegalStateException:
java.lang.reflect.InvocationTargetException
        at
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:109)
        at
com.mycompany.util.BookWorkflowUtilities.createSession(BookWorkflowUtilities.java:83)
        at 
com.mycompany.util.BookWorkflowService.init(BookWorkflowService.java:62)
        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
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340)
        at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293)
        at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
        ... 29 more
Caused by: java.lang.reflect.InvocationTargetException
        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.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116)
        ... 40 more
Caused by: java.lang.RuntimeException: Could not commit session or rollback
        at
org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:133)
        ... 45 more
Caused by: java.lang.RuntimeException: Unable to rollback transaction
        at
org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:184)
        at
org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:131)
        ... 45 more
Caused by: java.lang.NullPointerException
        at
org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:181)

-- 
View this message in context: 
http://drools-java-rules-engine.46999.n3.nabble.com/Caused-by-java-lang-NullPointerException-at-org-drools-persistence-jta-JtaTransactionManager-rollbac-tp2602190p2602190.html
Sent from the Drools - User mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to