JBoss AS 5.1にデプロイされたEJB3.1を使用していますので、@EJBインジェクションを使用しています。別のEJBから呼び出されたときにうまく動作します。このBeanのように:EJB3.1 - JNDIルックアップなしで@EJB注入チェーンを開始できますか?
この他の豆@Stateless(mappedName = "handler/MyHandler")
public class MyHandler implements MyHandlerRemote {
@EJB(mappedName = "daos/MyDao")
private MyDaoRemote myDao;
に注入され
@Stateless (mappedName = "daos/MyDao")
public class MyDAO implements MyDaoRemote {
@PersistenceContext(unitName = "myEm")
private EntityManager em;
しかし、私のアプリケーションは、POJOから始まります。私はあなたがEJBの外で@EJBの注入を使用することはできないと思います...だから、JNDIルックアップを使わずにMyHandlerを取得することは可能ですか?このコードは次のように動作します。
return (MyHandlerRemote) new InitialContext().lookup("handler/MyHandler");
しかし、私はこのルックアップを避けることが大好きです。 SeamとSpringでは、アノテーションのクラスのスキャンが簡単であるようです。
おそらく@EJB注入は必要ありませんが、コンテナに私のためのPersistenceContextと自動配線を管理させるのが好きです。
Weldのように思えるかもしれませんが、Springと同じようにJBoss AS 5.1でも動作するとは思えませんが、JNDIルックアップのないEJBの出発点があるようです。
ありがとうございます。
あなたが達成しようとしているものは、CDIなしでは不可能です。 –
これを試してください: –
Forty
バマー... JSR-299の実装は私が知っているのはWeldとGuiceですかなり基本的な問題を解決するためにかなりの軽重のようなものです。 – javatestcase