私は、Seam 2.2.0、JPA プロバイダーとして hibernate 3.5.0-CR-2、データベース サーバーとして DB2、アプリケーション サーバーとして Websphere 7 を使用する Maven プロジェクトに取り組んでいます。今、私は次の問題に直面しています:
- SEAM コンポーネントとしても表示される EJB では、Seam の EntityManager (@In private EntityManager em) ではなく、EJB コンテナー (@PersistenceContext private EntityManager em) の EntityManager を使用したいと考えています。しかし、これが問題です。@PersistenceContext を使用して EntityManager を取得できません。
サーバー ログでは、EntityManagerFactory を作成できず、ClassCastException を取得することが示されています。
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence は javax.persistence.spi.PersistenceProvider と互換性がありません
フォーラムで多くのデバッグと検索を行った結果、Websphere が Hibernate JPA プロバイダーを使用していないことが問題であると推測しています。
誰かがこの問題に直面し、解決策を持っていますか? アプリケーションが最初にアプリケーション クラス ローダーを使用してクラスをロードするように、既に WAS クラス ローダーの順序を構成し、必要なすべての jar をアプリケーション イヤーにパックしました。必要に応じて、persistence.xml、components.xml ファイル、およびスタック トレースを投稿します。
この問題がここでも議論されていることがわかりました:
- Websphere EntityManagerFactory 作成の問題
- Hibernate 3.3 は、Websphere 7.0 でエンティティ マネージャ ファクトリを作成できません。助けてください
どんなヒントも役に立ちます。
前もって感謝します!
ミハエラ