gpt4 book ai didi

java - 如何将WebLogicJtaTransactionManager转换为tomcat支持的TransactionManager

转载 作者:行者123 更新时间:2023-12-02 12:15:38 32 4
gpt4 key购买 nike

到目前为止,我们正在使用 weblogic 服务器。因此我们使用 webLogicJtaTransactionManager ,如下所示。

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

现在我想将上面的XML更改为tomcat支持的transactionManger。你能帮忙如何改变这个吗?我尝试在 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

最佳答案

例如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的事务管理器,因此它支持分布式事务,并且Spring中也有一个跨平台的JTA事务管理器,JtaTransactionManager 。但是,由于 Tomcat 不支持开箱即用的 JTA,因此您无法使用它 - 使用上面的示例,您将仅获得数据源的事务。

关于java - 如何将WebLogicJtaTransactionManager转换为tomcat支持的TransactionManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46197832/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com