新しく実装された JAX-RS サービスで既存の EJB を動作させようとしています。
私のプロジェクトは次のように設定されています
root
ear
ejb
war
以下は、戦争プロジェクト内で正常に動作する従来の JAX-WS コードです...
@WebService
public class MyService {
@EJB
MyEJBLocal local;
...
}
次の JAX-RS リソースを EJB プロジェクトに追加しました (長い話で、まだ戦争でテストする時間がありませんでした)...
@Stateless
@Path("test")
public class MyResource {
@EJB
MyEJBLocal local;
@GET
@Produces("text/plain")
public String getCount(){
//int count = local.getCount();
//TODO: remove below once above is working
return String.valueOf(20);
}
....
}
コメントを削除すると、ローカルが null であるため、null ポインター例外が発生します。これは、初期コンテキストを作成して JNDI 名を渡そうとしましたが、名前が見つからないため、JAX-RS が EJB マッピングを取得する際の問題によるものだと思います。
JAX-RS の代わりに JAX-WS を使用する以外に回避策はありますか?