2012-03-24 9 views
1

これはJava EE 5の移行から得た明確な質問です。私は現在、WARファイルにパックされたJava EE 6 Webサービスを開発中です。その上でCDIを使用できるかどうかを知りたいと思います。私は@Statelesのアノテーションを使用したいくつかの例を見てきましたが、これはWAR内ではできません(私が知る限り)。Java EE 6 WebサービスとCDIインジェクション

現在の実装:

@WebService 
public class MyService{ 

    @Inject 
    HelloTeller teller: 

    @WebMethod 
    public String sayHello(){ 
     teller.sayHello(); 
    } 
} 

注:他のアプローチは、このWebサービスのために特別のejbModuleを作成することです。

答えて

2

EE6では、戦争でJAX-WSエンドポイントとしてSLSBを使用できるはずです。 EJBを挿入し、スコープ付きおよびアプリケーションスコープのBeanをCDIから要求することができます。

+0

私は試しましたが、注入されたフィールドは常にnullです。私は別のpure-ejb-projectで動作させることができますが、WARをwhitinすることはできません。 –

+0

arquillian testやsimple war/githubプロジェクトがありますか? – LightGuard

+2

@Timoteo Ponce:WEB-INFディレクトリにbeans.xmlファイルがありますか? CDIがなければ、CDIは機能しません。人々はしばしばこのファイルを追加することを忘れてしまいます。 – kraftan

関連する問題