JNDI查找失败

时间:2018-10-14 20:15:22

标签: 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="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()

1 个答案:

答案 0 :(得分:1)

您的项目的类路径似乎有问题。检查项目中是否存在相同依赖项的两个版本。就我而言,我在类路径中有多个版本的jboss-transaction jar,仅保留其中一个版本即可为我解决问题。检查是否有导致此问题的传递依赖项,可以在您的maven pom中排除。