JavaEE 6、EJB3、JSF2、および JPA を使用して、Web ショップ、バックエンド ロジック、およびそれらすべてのデスクトップ管理アプリケーションを開発しています。そのために Netbeans 7 と Glassfish を使用しています。
私が Glassfish で抱えている多くの安定性の問題の中で、そのうちの 1 つが本当にバグであると思います。そして、それが忍び寄ると、自然に消えるまで文字通り修正する方法がなく、元に戻るまでの短い期間、すべてが機能し続けます.
EJB モジュールが動作を停止すると、それ自体が反映されます。Web アプリケーションとデスクトップが実行されますが、どちらも EJB にアクセスできません。EAR 実行時の Glassfish サーバー出力の通常のメッセージは、次のようなものです。
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/ManagerBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/SubcategoryBeanRemote 警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/ProductBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/CategoryBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/ManagerBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/SubcategoryBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/ProductBeanRemote
警告: 注釈処理のエラー: java.lang.NoClassDefFoundError: rs/elfak/eposlovanje/beans/CategoryBeanRemote
重大: クラス [Lrs/elfak/eposlovanje/beans/CategoryBeanRemote; ] 見つかりません。エラー中
読み込み中 [クラス演習.UiBean]
重大: クラス [Lrs/elfak/eposlovanje/beans/CategoryBeanRemote; ] 見つかりません。読み込み中にエラーが発生しました [クラスの演習.UiBean]
それが私の CDI Bean のクラッシュにつながりUiBean
ます。
Glassfish コンソールの下には、次の原因による UiBean の読み込みエラーも表示されます。
org.jboss.weld.resources.spi.ResourceLoadingException: クラス exercise.UiBean のロード中にエラーが発生しました。. .
原因: java.lang.NoClassDefFoundError: Lrs/elfak/eposlovanje/beans/CategoryBeanRemote; java.lang.Class.getDeclaredFields0(Native Method) で java.lang.Class.privateGetDeclaredFields(Class.java:2317) で java.lang.Class.getDeclaredFields(Class.java:1762)...
各 EJB についても同様です。xxxRemote アイテムは実際にはリモート インターフェースであり、EJB はそのように命名されていますが、Remote 接尾辞はありません。
テーブルを作成したり、SQL を実行したりできないため、JPA に関連するエラーが発生することがあります (persistance.xml がテーブルを作成しないように設定されているにもかかわらず、テーブルを削除しようとすることがあります)。しかし、それは通常、実行を数回押すと消えます。
これに関して何ができるでしょうか?AppData の一部の Netbeans キャッシュの消去、ejb および war プロジェクトの再追加、ライブラリのコピーなど、いくつかの解決策を Google で調べましたが、実際には何も解決しません。
問題の原因が他のアプリケーション サーバーにあるように思われるため、他のアプリケーション サーバーを試す必要がありますか?