例外是在将我的春季Maven项目从JBOSS EAP 6迁移到Tomcat 8.0时出现的


Cannot resolve reference to bean 'transactionManager' while setting bean 
property 'transactionManager'; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'transactionManager' defined in ServletContext resource [/config/core-spring-config.xml]: Invocation of init method failed; nested
    java.lang.IllegalStateException: No JTA UserTransaction available - specify either 'userTransaction' or 'userTransactionName' or 'transactionManager' or 'transactionManagerName'

我为设置做了什么?

我创建了JNDI资源。最初,DataSourceBean初始化错误即将到来,我通过创建JNDI资源解决了它。应用程序也已正确映射,并且正在加载相同的道具。现在以上错误即将到来。

假设: 1.同一app.war在我的系统上的JBOSS实例上正常工作。我的tomcat也在同一系统上。几个其他应用程序(例如微服务(在同一tomcat上运行良好,但我的主要应用程序不是。2.我尝试从其中一个bean的init方法运行SQL查询,因此SQL Connection/JDBCtemplate也很好。我认为根本原因应该是一些默认的弹簧罐相关/路径表达式相关。

tomcat只是一个servlet容器,与JBOSS不同,它是一个完整的Java EE堆栈实现,并且是应用程序服务器。因此,如果您使用JMS,JTA等Java EE功能,则可能需要更改从Tomcat到JBOSS。在这种情况下,您应该确定交易管理器,以便让Tomcat知道它应该使用哪种交易管理器。

最新更新