2017-09-13 92 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支持的transactionManger。你可以请帮助如何改变这一点。我试图在tomcat服务器中调用deployee,但是出现了以下错误。

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是平台不可知的。

在java中配置:

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

在XML配置:

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

您的WebLogic例如启用JTA的事务管理器,所以它支持分布式事务,并有一个跨平台的JTA在Spring的交易管理器,以及JtaTransactionManager。然而,由于Tomcat并不支持JTA,所以你不能使用它 - 使用上面的例子,你只会得到你的数据源的事务。