0

を含む1つのjar(a.jar)にコードがあります@Inject X x

別のjar(b.jar、有効なBeanアーカイブなど)での実装でインジェクションを満たしたいです。

私の理解では、a.jarとb.jarはCDIに関して独立しているため、別々のWARスタンドアロンアーカイブにデプロイすることはできません。Glassfishがすべてのデプロイメントに提供するlibフォルダーにb.jarを配置できる場合があります(ただし、これは「純粋なJava 6 EE」であり、戦争や耳と同じようにデプロイできないことを意味しますか?)。libに配置されたEARでa.warまたはa.jarと一緒にb.jarを提供できる場合がありますが、これには慣れていません。

私の質問は、Glassfish(現在は3.0.1ですが、より適切に機能する場合は3.1.1を検討します)がこの依存関係を正しく解決するように、a.jarとb.jarをデプロイするためのオプションはどれですか?網羅的なリストを探しています。

(編集:b.jarをa.jarとは独立してデプロイできるソリューションが望ましい)

4

2 に答える 2

1

良いオプションは、プロジェクトのフォルダーにa.jarとを入れることだと思います。デメリットと思われる点を教えてください。b.jarlib

于 2011-08-16T09:07:48.873 に答える
1

b.jar関連するオブジェクトを EJB に変換して、事実上b.jarEJB 3 の「サービス」に変換できるかどうかを確認します。

次に、a.jar(およびサービスを必要とするその他のコード) で、CDI Producer メソッドを使用して JNDI ルックアップを実行し@Inject、ローカル リソースと同じように EJB にアクセスできるようにします。

a.jarまたは、 EJB 3 'サービス' に変換することもできる場合、EJB の を の EJB に (Java EEまたは注入b.jarを使用して) コンテナーによって直接注入することができます。@EJB@Resourcea.jar

于 2011-08-16T10:41:50.190 に答える