我阅读了很多关于错误javax/transaction/TransactionManager
的帖子,但这些解决方案都没有解决我的问题。
首先要说的是,当我在服务器上部署我的Web应用程序(使用Spring MVC和Hibernate制作)时,我遇到了这个错误。在我的计算机上,使用Eclipse和Tomcat 7一切正常。
第二件事就是在那台服务器上我有另一个在tomcat /root
文件夹下运行的web应用程序(这是一个简单的java应用程序,DOESN&T;它既不使用Spring mvc也不是Hibernate)。我尝试部署的新应用程序正在另一个名为/prova
的文件夹下运行。
另外,根据我在一些帖子上看到的内容,我添加到我的lib文件夹中:
1)jta-3.1.2.2.jar
2)hibernate3.3.1-jta-1.1.jar
3)javax.transaction.jar
在我的xml文件中,我有这个定义事务管理器的bean
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
奇怪的是,在服务器日志中确切的错误是
Caused by: java.lang.NoClassDefFoundError: Ljavax/transaction/TransactionManager;
javax/transaction/TransactionManager
有什么想法吗?
谢谢
答案 0 :(得分:1)
不要担心“ L ”,它只是定义以下是一个对象。你可以找到其他字母:
BaseType
B byte (signed byte)
C char (Unicode character)
D double (double-precision floating-point value)
F float (single-precision floating-point value)
I int (integer)
J long (long integer)
L<classname>; reference (an instance of class <classname>)
S short (signed short)
Z boolean (true or false)
[ reference (one array dimension )
要回到您的问题,您是否定义了与此相近的事务管理器:
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory">
</bean>
HibernateTransactionManager是javax.transaction.TransactionManager的实现
答案 1 :(得分:1)
这对我有用
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.3</version>
</dependency>
答案 2 :(得分:0)
您必须添加此依赖性这是可行的
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.2.Final</version>
</dependency>
答案 3 :(得分:-1)
哪里是spring-data罐子?它看起来像spring-data-commons。请花一些时间学习如何使用maven或gradle。它会节省你很多时间。