Java JNDI查找失败(Spring、JBoss)
我在初始化应用程序时遇到问题。JNDI查找没有完全初始化,因为循环引用不存在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">
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>