Java JNDI查找失败(Spring、JBoss)

Java JNDI查找失败(Spring、JBoss),java,spring,transactions,jboss,jndi,Java,Spring,Transactions,Jboss,Jndi,我在初始化应用程序时遇到问题。JNDI查找没有完全初始化,因为循环引用不存在 applicationContext.xml的一部分,问题是: <jee:jndi-lookup id="txm" jndi-name="java:/TransactionManager" /> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">

我在初始化应用程序时遇到问题。JNDI查找没有完全初始化,因为循环引用不存在

applicationContext.xml
的一部分,问题是:

<jee:jndi-lookup id="txm" jndi-name="java:/TransactionManager" />

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <constructor-arg  type="javax.transaction.TransactionManager" ref="txm" />
    <property name="autodetectUserTransaction" value="false" />
    <property name="defaultTimeout" value="60" />
</bean>

我认为您不需要使用
构造函数arg
,只需使用
transactionManagerName
属性即可

<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManagerName" value="java:/TransactionManager"/>
    <property name="userTransactionName" value="UserTransaction"/>
</bean>


因为还有另一个问题。我必须不止一次地使用
txm
,每次都进行新的查找并不是最好的解决方案。但是如果我使用
我会得到与以前相同的错误。为什么?你说你必须多次使用txm是什么意思?为什么不直接使用transactionManager?我指的是名为transactionManager的bean,类型为JtaTransactionManager。我有一个JmsConnectionFactory,它也需要
javax.transaction.transactionManager
。您可以使用transactionManager吗?您仍然只有一个查找。我不能使用
txManager
bean-
org.springframework.transaction.jta.JtaTransactionManager
代替
javax.transaction.TransactionManager
。我需要两个位置的
txm
。如果我分别为这两个属性(transactionManager和jmsConnectionFacotry)使用
transactionManagerName
属性,则它可以工作,但查找会执行两次。
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManagerName" value="java:/TransactionManager"/>
    <property name="userTransactionName" value="UserTransaction"/>
</bean>