2011-06-14 20 views
0

アプリケーションの初期化に問題があります。 JNDIルックアップは循環参照のために完全には初期化されていませんが、そうは思いません。問題があるapplicationContext.xmlJNDIルックアップが失敗する(Spring、JBoss)

パート:

<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> 

エラーメッセージ:私はあなただけtransactionManagerNameプロパティを使用し、constructor-argを使用する必要はないと思う

org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning eagerly cached instance of singleton bean 'txm' that is not fully initialized yet - a consequence of a circular reference 

org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'txm': FactoryBean which is currently in creation returned null from getObject 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:156) 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075) 
    at org.apache.camel.spring.CamelBeanPostProcessor.postProcessBeforeInitialization(CamelBeanPostProcessor.java:95) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) 
... 

答えて

2

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

素晴らしいです。ありがとうございました。なぜ以前にはうまくいかなかったのですか? – user219882

+0

同意書を削除した理由を聞かれますか? – abalogh

+0

別の問題があるためです。私は 'txm'を複数回使用する必要があり、毎回新しいルックアップを行うのは最善の解決策ではありません。しかし、私が ''を使用すると、前と同じエラーが発生します。何故ですか? – user219882

関連する問題