休止状態エラー – java.lang.NoClassDefFoundError:javax/transaction/Synchronization
問題
これは、通常、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中央、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ネット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>