EJB注入に関するいくつかの問題があり、どこでも解決策を見つけることができませんでした。
状況は次のとおりです。私は、WARといくつかのJARを含むEARファイルを持っています。すべてがapplication.xmlファイルにリストされています。この部分はすべて正常に動作しています。 「プラグインシステム」と呼べるものを追加しようとすると問題が発生します。 私は内部にいくつかの.xhtmlページ、バッキングBean、EJBを持つJARを持っています。このJARは、必要に応じて、特定のディレクトリ(プラグインと呼ぶ)のEARの内部に挿入され、起動時にアプリケーションから検出されます。
JARが検出されると、パスがWARクラスローダに追加され、すべてのページとバッキングBeanが問題なく検出されます。動作しないのは、EJBの注入です(@EJB、@Inject、ルックアップという表記法を使用しようとしました...)。私はJARプラグインの中にあるEJBを注入することはできません。
私の推測では、アプリケーションサーバーはJARを単純なライブラリモジュールとして扱い、内部のどのEJBも検索しないため、JAR内部にありますがアプリケーションからは使用できません。jarにあるEJBの注入に関する問題
私の質問は、これを動作させる方法がありますか?私が使用しているアプリケーションサーバーが3.0 GlassFishのです...
を私はEARのMANIFEST.MFにJARを追加しようとしましたが、何も変わっていません。 application.xmlについて:私は "プラグインシステム"と呼ばれるものの一部であるJARについて、そこには何の参照もありません。これは、アプリケーションサーバーでアプリケーションをデプロイする(または再起動する)ときに検出するため、システム内にあるかどうかがわからず、システムが起動する前に実際にはわからないからです。 各プラグインJARは、システムから動的に(実際のプラグインシステムのように)追加または削除できるページと機能の「コレクション」です。 私の耳の構造は以下の通りです:
に、myapp.ear
- META-INF
- libのプラグイン
- plugin1.JAR
- app.WAR
- logic1.JAR
- logic2.JAR
例えば:application.xmlに私は(彼らはシステム内部で常にある)app.WAR、logic1.JARとlogic2.JARのための参照を持って、起動時にアプリケーションのルックスプラグイン(特定のJAR)をシステムに追加するためのフォルダ "プラグイン"の内側にあります。私は私がやろうとしているかについてより明確にしてきた期待し
は...