[rules-users] Caused by: java.lang.NullPointerException at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:181)

odelyaholiday odelyay at sintecmedia.com
Tue Mar 1 05:53:46 EST 2011


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.



More information about the rules-users mailing list