私は、Web アプリケーションと Java コンソール アプリケーションで使用することを目的とした小さな Java ライブラリを作成しています。
CDI やその他の JavaEE 6 機能を活用し、ライブラリの 2 つのバージョン (Java EE と Java SE) を維持する必要がないようにするために、コンソール アプリケーションに openejb (組み込み) を使用したいと考えています。そこで、Eclipse で Maven プロジェクトを作成し、openejb アーティファクトを追加しました。
どういうわけか、インジェクションやその他の JavaEE 機能を解決するコンソール プログラムで openejb-container を使用する方法がわかりません。
2 つの非常に単純なクラスがあるとします。
@Stateless
Class A {
@Inject
public B member;
public A() {};
}
と
@Stateless
Class B {
public B() {};
public String getString () {
return "Hello";
}
}
では、組み込みの openejb を使用して A のメンバーをインスタンス化する main() メソッドを使用して、プレーンな古い Java クラスを取得するにはどうすればよいでしょうか。- 次のような方法で:
public class TestOpenEJB {
public static void main(String[] args) {
Class A a = new A(); /*wrong of couse*/
System.out.println( a.member.getString() );
}
}
この単純な例の実用的な解決策は役に立ちます。
最後に、ここでの私の目的は、組み込みの javaEE コンテナーを内部で使用するライブラリー用の Java SE API を提供することです。
どうもありがとう!