如果有人可以帮助我纠正代码中的问题,我将不胜感激。不知道我要去哪里错了。
当前我的persistence.xml包含
<property name="hibernate.transaction.manager_lookup_class" value="#####.hibernate.JbossTSTransactionManagerLookup"/>
<property name="hibernate.current_session_context_class" value="jta"/>
以及
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="####"/>
<property name="jpaDialect" ref="jpaDialect"/>
</bean>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:comp/env/TransactionManager"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
上下文初始化失败:org.springframework.beans.factory.BeanCreationException:在类路径资源[### XMLConfig.xml]中创建名称为'transactionManager'的bean时出错:调用init方法失败;嵌套的异常是org.springframework.transaction.TransactionSystemException:JTA TransactionManager在JNDI位置不可用[java:comp / env / TransactionManager];嵌套异常是org.springframework.jndi.TypeMismatchNamingException:类型为[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple]的对象在JNDI位置[java:comp / env / TransactionManager]不可以分配给[ javax.transaction.TransactionManager]
由以下原因引起:org.springframework.transaction.TransactionSystemException:JTA TransactionManager在JNDI位置不可用[java:comp / env / TransactionManager];嵌套异常是org.springframework.jndi.TypeMismatchNamingException:类型为[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple]的对象在JNDI位置[java:comp / env / TransactionManager]不可以分配给[ javax.transaction.TransactionManager]
在org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionManager(JtaTransactionManager.java:598)
由以下原因引起:org.springframework.jndi.TypeMismatchNamingException:类型为[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple]的对象在JNDI位置[java:comp / env / TransactionManager]不可用可在org.springframework.jndi.JndiTemplate.lookup()处分配给[javax.transaction.TransactionManager] 在org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionManager()
答案 0 :(得分:1)
您的项目的类路径似乎有问题。检查项目中是否存在相同依赖项的两个版本。就我而言,我在类路径中有多个版本的jboss-transaction jar,仅保留其中一个版本即可为我解决问题。检查是否有导致此问题的传递依赖项,可以在您的maven pom中排除。