Let see if I can explain this:
Description:
I am using JBoss+JPA[Java Persistence API]+Hibernate as Persistence Manager [don't
know TopLink Essentials yet]+Spring2.0+JDK1.5+Tapestry4.1[Ajax]/Hivemind+maven2+cargo
Problem:
I'd like to use JTA instead of RESOURCE_LOCAL
I had to add java:comp/UserTransaction in conf/jboss-service.xml since it doesn't
appear to be there
Finally, it doesn't seem to find the UserTransaction java.lang.ClassCastException:
org.jboss.tm.TxManager
Somebody any clue?
ps: I tried the same conf on WebSphere 6.1 [IBM's JDK 1.5] using the below conf it
works. Am I missing something?
| <property name="hibernate.transaction.factory_class"
value="org.hibernate.transaction.JTATransactionFactory"/>
| <property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup" />
| <property name="jta.UserTransaction"
value="jta/usertransaction" />
|
persistence.xml
| <persistence
xmlns="http://java.sun.com/xml/ns/persistence"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
| version="1.0">
| <persistence-unit name="BatchPostingStatusService"
transaction-type="JTA">
| <jta-data-source>java:jdbc/raaDS</jta-data-source>
|
<class>com.alliancebernstein.cfs.raa.domain.entity.persistence.JpaBatchPostingStatus</class>
| <properties>
| <property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle9Dialect"/>
| <property name="hibernate.show_sql" value="true"/>
| <property name="hibernate.transaction.factory_class"
value="org.hibernate.transaction.JTATransactionFactory"/>
| <property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
| <property name="jta.UserTransaction"
value="java:comp/UserTransaction" />
| </properties>
| </persistence-unit>
| </persistence>
|
java:comp/UserTransaction in conf/jboss-service.xml
<!--
| | UserTransaction support.
| -->
| <mbean code="org.jboss.tm.usertx.server.ClientUserTransactionService"
| name="jboss:service=ClientUserTransaction"
| xmbean-dd="resource:xmdesc/ClientUserTransaction-xmbean.xml">
| <depends>
| <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
|
name="jboss:service=proxyFactory,target=ClientUserTransactionFactory">
| <attribute
name="InvokerName">jboss:service=invoker,type=jrmp</attribute>
| <attribute
name="TargetName">jboss:service=ClientUserTransaction</attribute>
| <attribute
name="JndiName">UserTransactionSessionFactory</attribute>
| <attribute
name="ExportedInterface">org.jboss.tm.usertx.interfaces.UserTransactionSessionFactory</attribute>
| <attribute name="ClientInterceptors">
| <interceptors>
|
<interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
|
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
| </interceptors>
| </attribute>
| <depends>jboss:service=invoker,type=jrmp</depends>
| </mbean>
| </depends>
| <depends optional-attribute-name="TxProxyName">
| <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
|
name="jboss:service=proxyFactory,target=ClientUserTransaction">
| <attribute
name="InvokerName">jboss:service=invoker,type=jrmp</attribute>
| <attribute
name="TargetName">jboss:service=ClientUserTransaction</attribute>
| <attribute
name="JndiName">java:comp/UserTransaction</attribute>
| <attribute
name="ExportedInterface">org.jboss.tm.usertx.interfaces.UserTransactionSession</attribute>
| <attribute name="ClientInterceptors">
| <interceptors>
|
<interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
|
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
| </interceptors>
| </attribute>
| <depends>jboss:service=invoker,type=jrmp</depends>
| </mbean>
| </depends>
| </mbean>
|
anonymous wrote : 2006-10-13 09:17:06,020 DEBUG [org.hibernate.impl.SessionFactoryImpl]
obtaining JTA TransactionManager
| 2006-10-13 09:17:06,020 INFO [org.hibernate.util.NamingHelper] JNDI InitialContext
properties:{}
| 2006-10-13 09:17:06,020 INFO
[org.springframework.beans.factory.support.DefaultListableBeanFactory] Destroying
singletons in {org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans
[entityManagerFactory,batchPostingStatusServiceDao,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor];
root of BeanFactory hierarchy}
| 2006-10-13 09:17:06,020 ERROR [org.springframework.web.context.ContextLoader] Context
initialization failed
| org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'entityManagerFactory' defined in ServletContext resource
[/WEB-INF/spring/applicationContext.xml]: Invocation of init method failed; nested
exception is java.lang.ClassCastException: org.jboss.tm.TxManager
| Caused by:
| java.lang.ClassCastException: org.jboss.tm.TxManager
| at
org.hibernate.transaction.JNDITransactionManagerLookup.getTransactionManager(JNDITransactionManagerLookup.java:23)
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3978154#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...