0

IBM RAD 7 (別名 Eclipse 3.4) と WebSphere 7 を使用しています。

基本的な EJB セットアップを備えたワークスペースがあります。プロジェクト TestEAR、TestEJB、TestJPA、TestWeb。

TestEJB プロジェクトで ejb ("@Stateless EntityService") に注釈を付けることができ、正常に動作します。しかし、ejb ("@Stateless EntityDAO") を TestJPA プロジェクトに配置すると、EntityService に挿入されません。EntityDAO を TestEJB プロジェクトに移動すると、正常に動作します。

また、クラスにエンティティ (「@Entity MyEntity」) に注釈を付けると、コンテナにはエンティティとして認識されません (「認識されていないエンティティ」...「既知のエンティティ タイプ: []」エラーが発生します)。しかし、my.domain.MyEntity タグを TestEJB の persistence.xml に追加すると、問題なく動作します。

質問: TestEJB プロジェクトが TestJPA プロジェクトのアノテーション付きクラスを認識できないのはなぜですか?

注: Eclipse 3.4 には [Deployment Assembly] タブはありませんが、[Java EE Module Dependencies] タブ ([TestEAR] > [Properties] > [Java EE Module Dependencies]) があります。私はチェックし、すべてのプロジェクトがリストにあり、チェックされています(つまり、TestEJB、TestJPA、TestWeb)。

どんな助けでも大歓迎です!これは私を本当に困惑させました。

ありがとう、ロブ

4

1 に答える 1

0

ここにいくつか質問があるようです...

TestJPA Beanを使用しないTestEJBプロジェクトの場合、TestEARのapplication.xmlファイルにモジュールで<ejb>はなくモジュールとして両方がリストされていることを確認してください。<jar>また、両方がEARの一部であることを確認してください。

不明なエンティティタイプの場合、そのエラーがRSA内に表示される場合は、プロジェクトを右クリックして[JPAツール]を探し、[JPAエンティティの構成]を選択します。[JPAツール]が表示されない場合は、JPAファセットがそのプロジェクトで有効になっています。サーバーで発生している場合(私が推測するWAS)、次の行がpersistence.xmlにないことを確認してください。そうでない<exclude-unlisted-classes>true</exclude-unlisted-classes>場合は、すべてのクラスをリストする必要がありますが、必ずしも悪いことではありません。

絶対に重要でない限り、簡単にするために、EJBとエンティティを同じプロジェクトに格納します。

于 2012-02-24T19:28:09.803 に答える