Spring JNDI查找失败

Spring JNDI查找失败,spring,spring-mvc,jboss,jndi,jbossts,Spring,Spring Mvc,Jboss,Jndi,Jbossts,如果有人能帮我纠正代码中的问题,我将不胜感激。我不知道我会错在哪里 目前我的persistence.xml包含 <property name="hibernate.transaction.manager_lookup_class" value="#####.hibernate.JbossTSTransactionManagerLookup"/> <property name="hibernate.current_session_context_class" value

如果有人能帮我纠正代码中的问题,我将不胜感激。我不知道我会错在哪里

目前我的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:创建名为“transactionManager”的bean时出错,该bean在类路径资源[#####XMLConfig.xml]中定义:调用init方法失败;嵌套异常为org.springframework.transaction.TransactionSystemException:JTA TransactionManager在JNDI位置[java:comp/env/TransactionManager]不可用;嵌套异常为org.springframework.jndi.TypeMismatchNamingException:jndi位置[java:comp/env/TransactionManager]上可用的[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManager]类型的对象不能分配给[javax.transaction.TransactionManager]

原因:org.springframework.transaction.TransactionSystemException:JTA TransactionManager在JNDI位置[java:comp/env/TransactionManager]不可用;嵌套异常为org.springframework.jndi.TypeMismatchNamingException:jndi位置[java:comp/env/TransactionManager]上可用的[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManager]类型的对象不能分配给[javax.transaction.TransactionManager]

位于org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionManager(JtaTransactionManager.java:598)

原因:org.springframework.jndi.typemistmatchnamingexception:jndi位置[java:comp/env/TransactionManager]上可用的[class com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManager]类型的对象无法分配给org.springframework.jndi.jndemplate.lookup()上的[javax.transaction.TransactionManager]
在org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionManager()

上,项目的类路径似乎有问题。检查项目中是否存在相同依赖项的两个版本。在我的例子中,类路径中有多个版本的jboss事务jar,只保留一个版本就解决了这个问题。检查是否存在导致此问题的任何可传递依赖项,您可以将其排除在maven pom中

在我的例子中,没有两个版本,在pom中只添加了一个PostgreSQL依赖项,但仍然存在相同的问题