2011-06-14 2 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

관련 문제