Я пытаюсь изменить что-то вроде этого:
@Bean(name = "myTransactionManager")
public PlatformTransactionManager myTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setPersistenceUnitName("nameDatabase");
transactionManager.setEntityManagerFactory(myEntityManagerFactory().getObject());
return transactionManager;
}
на что-то вроде этого:
@Bean(name = "myTransactionManager")
public JtaTransactionManager myTransactionManager() throws Throwable {
JtaTransactionManager jtm = new JtaTransactionManager();
jtm.setTransactionManager(new WebLogicJtaTransactionManager().getTransactionManager());
jtm.afterPropertiesSet();
}
или, может быть, так:
@Bean(name = "myTransactionManager")
public PlatformTransactionManager myTransactionManager() throws Throwable {
return new WebLogicJtaTransactionManager();
}
Но это не удается при развертывании.
Одна из многих ошибок, которые я получаю, изменяя это:
Причина: java .lang.ClassCastException: weblogi c .transaction.internal.ServerTransactionManagerImpl не может быть приведен to javax.transaction.UserTransaction
Так что я действительно не знаю, каковы требования при переходе с JPA на JTA WebLogi c конкретный c TransactionManager. Я хотел бы оставить DataSource и EntityManager без изменений и просто изменить TransactionManager. И нет достаточно хорошего примера для использования WebLogicJtaTransactionManager.