问题
这是由于通常在Hibernate事务开发中缺少“ jta.jar
”引起的。
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:213)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:473)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:497)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:505)
at com.mkyong.common.App.main(App.java:13)
Caused by: java.lang.ClassNotFoundException: javax.transaction.Synchronization
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 5 more
解
您可以从默认的Maven jta.jar
,JBoss或Java.net存储库下载“ jta.jar
”。
1. Maven中央存储库
<dependencies>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
2. JBoss Maven存储库
添加JBoss Maven存储库
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
并定义“ jta.jar
”详细信息。
<dependencies>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
3. Java net Maven存储库
添加Java Net Maven存储库
<repositories>
<repository>
<id>Java 2</id>
<url>http://download.java.net/maven/2/</url>
</repository>
</repositories>
并定义“ jta1.0.1B.jar
”详细信息。
<dependencies>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.0.1B</version>
</dependency>
</dependencies>
注意
或者,您可以包含“ javaee.jar ”,可以在J2EE SDK的文件夹下找到它。 “ javaee.jar ”也包含“javax/transaction/Synchronization
”类。
标签: 冬眠