休止状態エラー – 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>