Hi guys,
I'm trying to deploy a spring based Knowledege Session with JPA persistence on Jboss 5.1, I was able to do it using a RESOURCE_LOCAL persistence unit but I would like to use a container JTA based deployment.
Basically, JPAConfiguration requires a Spring PlatformTransactionManager then I tried to use the following combination:
<bean id="springTxManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
<jee:jndi-lookup id="springEMF" jndi-name="java:DroolsEMF"/>
The problem is that using it, SingleSessionCommandService.initTransactionManager does not create a JPAManager.
So, my guess for this to work is to add support for this on SingleSessionCommandService or change JPAConfiguration (drools-spring-1.0.0.xsd) to accept that no transaction-manager is defined, causing Drools JtaTransactionManager to lookup the TransactionMananger from JNDI context.
The only way that I could deploy it is using these beans definitions:
<bean id="springEMF" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/spring-persistence.xml" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
</bean>
<bean id="springTxManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="springEMF" />
</bean>
Thanks.
--
Best regards,
Cristiano Nicolai