2016-12-26 11 views
0

저는 bitronix에 익숙하지 않아 응용 프로그램에 xa 트랜잭션이 필요합니다.톰캣에서 jndi 예외가 발생하는 Bitronix 구성

나는 springron과 함께 bitronix를 구성하려고하는데, 아래에서 Tomcat을 시작하는 데 예외가 있습니다.

도움을 주시면 감사하겠습니다.

의해 발생 : org.hibernate.engine.jndi.JndiException : org.hibernate.engine.jndi.internal.JndiServiceImpl.locate에서 JNDI 이름 [의 javax.transaction.TransactionManager] 를 조회 할 수 없음 (JndiServiceImpl.java:117) at org.hibernate.engine.transaction.jta.platform.internal.WeblogicJtaPlatform.locateTransactionManager (WeblogicJtaPlatform.java:41) org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.canRegisterSynchronization (AbstractJtaPlatform.java : 148) at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.attemptToRegisterJtaSync (TransactionCoordinatorImpl.java:252) at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.pulse (TransactionCoordinatorImpl. 자바 : org.hibernate에서 org.hibernate.jpa.spi.AbstractEntityManagerImpl.postInit (AbstractEntityManagerImpl.java:210) 에서 org.hibernate.jpa.spi.AbstractEntityManagerImpl.joinTransaction (AbstractEntityManagerImpl.java:1584)에서 289) . jpa.internal.EntityManagerImpl. (EntityManagerImpl.java:91) org.hibernate.jpa.internal.EntityManagerFactoryImpl.createEntityManager에서 org.hibernate.jpa.internal.EntityManagerFactoryImpl.internalCreateEntityManager (EntityManagerFactoryImpl.java:345) 에서 (EntityManagerFactoryImpl.java : 313) sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) sun.reflect.DelegatingMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) 에서 (DelegatingMethodAcc에서 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod (AbstractEntityManagerFactoryBean.java:407) org.springframework에서 에서 java.lang.reflect.Method.invoke (Method.java:606) 에서 essorImpl.java:43) . orm.jpa.AbstractEntityManagerFactoryBean $ ManagedEntityManagerFactoryInvocationHandler.invoke (AbstractEntityManagerFactoryBean.java:560) com.sun.proxy. $ Proxy78.createEntityManager (알 수없는 소스) org.springframework.orm.jpa.SharedEntityManagerCreator $ SharedEntityManagerInvocationHandler.invoke (SharedEntityManagerCreator에서 에서 . java : 288) (com.sun.proxy) $ Proxy83.getDelegate (알 수없는 소스) at org.springframework.data.jpa.provider.PersistenceProvider.fromEntityManager (PersistenceProvider.java:295) 발생 원인 : javax.naming.NameNotFoundException : 이름 [javax.transaction.TransactionManager]가이 Context에 바인드되어 있지 않습니다. [javax.transaction.TransactionManager]을 (를) 찾을 수 없습니다. at org.apache.naming.NamingContext.lookup (NamingContext.java:818) at org.apache.naming.NamingContext.lookup (NamingContext.java:152) at org.apache.naming.SelectorContext.lookup (SelectorContext. 자바 : javax.naming.InitialContext.lookup (InitialContext.java:415 134) ) org.hibernate.engine.jndi.internal.JndiServiceImpl.locate (JndiServiceImpl.java:114) AT는

답변

0

은 발처럼 보이는 Tomcat에서 응용 프로그램을 실행하는 스택 추적이므로 아래 점을 확인하십시오.

1) pom.xml 또는 프로젝트 특정 lib fo에 jta, bitronix 관련 jar가 없어야합니다. 그 항아리가 당신의 tomcat lib 디렉토리에 있어야하기 때문에.

2) 서버도 변경하십시오.xml과 context.xml 두 파일이 tomcat의 conf 폴더에 존재한다.

jndi 조회에 대한 구성이 무엇인지 잘 모르겠습니다. 아래 링크를 통해 tomcat 용 bitronix를 설정할 수 있습니다.

https://github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/TomcatWithBtm2x.adoc

+0

@ Boot. 고마워 내 문제가 해결되었습니다. 내 응용 프로그램에서 META-INF 폴더 아래에 context.xml이 없었습니다. –