Spring 3.2.x + Hibernate 4.3.xの統合、

JtaPlatform`を打つClassNotFoundException、プロジェクトのクラスパスを検索し、

JtaPlatform`が別のパッケージにあることを確認しますか?

hibernate-core.4.3.5.Final.jar

org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform

エラーメッセージに `org.hibernate.service.jta.platform.spi.JtaPlatform`が表示されます

Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/jta/platform/spi/JtaPlatform
    at org.springframework.orm.hibernate4.SpringSessionContext.<init>(SpringSessionContext.java:56)
    ~[spring-orm-3.2.8.RELEASE.jar:3.2.8.RELEASE]    ... 40 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.hibernate.service.jta.platform.spi.JtaPlatform//...

pom.xml

  <!-- Hibernate ORM -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.5.Final</version>
  </dependency>

  <!-- Spring 3 dependencies -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.8.RELEASE</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>3.2.8.RELEASE</version>
  </dependency>

解決策

Hibernate 4.3.x以降、 `JtaPlatform`クラスは新しいパッケージにリファクタリングされます。 ** それを修正するには、Hibernateを4.2.x以前にダウングレードするか、Springフレームワークをアップグレードしてください。

私の開発環境でテストしたところ、動作するバージョンは次のとおりです。

  1. Spring 3.2.8.RELEASE

  2. Hibernate 4.2.11.最終

pom.xml

  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.2.11.Final</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.8.RELEASE</version>
  </dependency>

リンク://タグ/例外/[例外]リンク://タグ/休止状態/[休止状態]