2017-09-13 1 views
0

지금 우리는 weblogic 서버를 사용하고 있습니다. 그래서 우리는 아래와 같이 webLogicJtaTransactionManager를 사용하고 있습니다.WebLogicJtaTransactionManager를 Tomcat에서 지원되는 TransactionManager로 변환하는 방법

<bean id="transaction manager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager" > 
<parameter="transactionManagerName" value="javax.transaction.TransactionManger" /> 
</bean> 

이제 위의 XML을 tomcat 지원 트랜잭션 관리자로 변경하고 싶습니다. 이걸 어떻게 바꿀 수 있겠 니? 내가 tomcat 서버에 배포하려고했는데,이 오류가 발생하면 아래 오류가 발생합니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.transaction.TransactionSystemException: Could not initialize WebLogicJtaTransactionManager because WebLogic API classes are not available; nested exception is java.lang.ClassNotFoundException: weblogic.transaction.TransactionHelper 
+0

답변을 수락하거나 이전 질문으로 돌아가는 것을 고려해 볼 수 있습니다. 당신은 그들 중 많은 사람들이 방황하고있는 것처럼 보입니다. – eis

답변

1

예 : DataSourceTransactionManager은 플랫폼에 영향을받지 않습니다. XML의 설정에

import org.springframework.transaction.PlatformTransactionManager; 
import org.springframework.jdbc.datasource.DataSourceTransactionManager; 
import javax.sql.DataSource; 

// snip other stuff 

@Bean 
public PlatformTransactionManager transactionManager() { 
    return new DataSourceTransactionManager(dataSource()); 
} 
@Bean 
public DataSource dataSource() { 
    // create and return a new JDBC DataSource ... 
} 

:

자바 설정에서

<bean id="transactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="datasource" /> 
</bean> 

귀하의 웹 로직 예, 트랜잭션 관리자 JTA 지원, 그래서 분산 트랜잭션을 지원 가지며, 크로스 플랫폼 JTA가 Spring의 트랜잭션 관리자, JtaTransactionManager. 그러나 Tomcat은 JTA를 기본적으로 지원하지 않기 때문에 사용할 수 없습니다. 위 예제를 사용하면 데이터 소스에 대한 트랜잭션 만 얻을 수 있습니다.