spring boot + JTA + Atomikos
项目运行起来提示:WARNING: transaction manager not running?
2024-08-13T16:00:50.080+08:00 WARN 2444 --- [ main] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for ProxyConnectionID:1: WARNING: transaction manager not running?
2024-08-13T16:00:50.087+08:00 WARN 2444 --- [ main] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for ProxyConnectionID:1: WARNING: transaction manager not running?
查了相关资料,需要对JTA 事务配置,以下是我粘贴的源代码,:
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.jta.JtaTransactionManager;
import com.atomikos.icatch.jta.UserTransactionImp;
import com.atomikos.icatch.jta.UserTransactionManager;
/**
* JTA 事务配置
*/
@Configuration
public class AtomikosConfig {
@Bean(name = "userTransaction")
public UserTransaction userTransaction() throws Throwable {
UserTransactionImp userTransactionImp = new UserTransactionImp();
userTransactionImp.setTransactionTimeout(10000);
return userTransactionImp;
}
@Bean(name = "atomikosTransactionManager", initMethod = "init", destroyMethod = "close")
public TransactionManager atomikosTransactionManager() throws Throwable {
UserTransactionManager userTransactionManager = new UserTransactionManager();
userTransactionManager.setForceShutdown(false);
return userTransactionManager;
}
@Bean(name = "transactionManager")
@DependsOn({ "userTransaction", "atomikosTransactionManager" })
public PlatformTransactionManager transactionManager() throws Throwable {
UserTransaction userTransaction = userTransaction();
TransactionManager atomikosTransactionManager = atomikosTransactionManager();
return new JtaTransactionManager(userTransaction, atomikosTransactionManager);
}
}
粘贴到我自己的项目里,出现了两处错误,第一处可以删掉无关紧要,重点是第二处:
我导入的包明明和原帖一样,为什么还会出现参数类型不匹配,我尝试将javax的包替换成jakarta的包
但是这样的话,userTransactionImp的类型又不匹配了
到底是哪里出了问题