java.lang.ClassNotFoundException:org.springframework.transaction.TransactionException
Spring 3でQuartzを開発し、エラーメッセージの後にヒットします。
Caused by: java.lang.NoClassDefFoundError: org/springframework/transaction/TransactionException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.getDeclaredConstructor(Class.java:1985) ..... Caused by: java.lang.ClassNotFoundException: org.springframework.transaction.TransactionException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) ... 29 more
解決策
Quartzでは問題ありません。上記のエラーメッセージは、Springのトランザクション依存性が必要であることを示しています。これを修正するには `spring-tx.jar`をインクルードするだけです。
たとえば、pom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.1.2.RELEASE</version> </dependency>