2011-08-16 10 views
0

@Inject X xを含む1つのjar(a.jar)にコードがあります。GlassFish v3の導入に適したCDIの候補はどこに置くことができますか?

012ureを有効にしたいと思います。 jar(b.jarは有効なBeanアーカイブなどです)。

私の理解では、独立したWARスタンドアロンのアーカイブには、独立したCDIのように、a.jarとb.jarをデプロイできません。 Glassfishがすべてのデプロイメントに提供するlibフォルダにb.jarを置くことができるかもしれません(しかし、この「純粋なJava 6 EE」は戦争や耳と同じ方法では展開できません)。私はlibにa.warまたはa.jarとともに置かれたEARにb.jarを提供することができるかもしれませんが、私はこれに慣れていません。

質問はです。GlassFish(現在は3.0.1ですが、それがうまくいく場合は3.1.1と見なします)が正しくこの依存関係を解決するように、a.jarとb.jarを展開するオプションはどれですか?私は網羅的なリストを探しています。

(編集:私はb.jarが独立してはA.jarの展開できるソリューションを好むだろう)

答えて

1

私は良いオプションは、プロジェクトのlibフォルダにa.jarb.jarを入れていると思います。それに欠点があると思ったら教えてください。

+0

可能であれば、2つのjarを別々の配備に分割したいと思います –

1

b.jarの関連するオブジェクトをEJBに変えれば、b.jarをEJB 3の '​​サービス'に変えることができます。

次に、a.jar(およびサービスを必要とするその他のコード)では、CDIプロデューサメソッドを使用してJNDIルックアップを実行し、ローカルリソースと同じように@Inject EJBを許可します。あなたもb.jarからその後、EJBのEJB 3「サービス」内にa.jarを回すことができるかどう

また、a.jarのEJBのに(Java EEの@EJBまたは@Resource注入を使用)コンテナによって直接注入することができます。

関連する問題