2

@ResourceJAX-WS SEクラスには、最終的にクライアントのIPアドレスを取得するためにを挿入するフィールドがあります。このSEをCDIマネージドBeanにするまでは、すべて問題ありません。

@WebService
public class AImpl implements A {

    @Resource
    private WebServiceContext wsContext;

    @Inject
    private ADelegated delegated;

        ...
}

このアプリをWebLogic12cにデプロイすると、このエラーが発生します

java.lang.IllegalArgumentException: Can not set javax.xml.ws.WebServiceContext field AImpl.wsContext to weblogic.jndi.internal.WLEventContextImpl

私のコードの何が間違っていますか?

よろしくお願いします。

4

2 に答える 2

2

私は解決策を見つけました(Oracleフォーラムの人々の助けを借りて)。

@Resourceアノテーションに属性'name'を追加することで、問題は解決されました。

@WebService
public class AImpl implements A {

    @Resource(name="wsContext")
    private WebServiceContext wsContext;

    @Inject
    private ADelegated delegated;

        ...
}
于 2012-09-27T16:19:28.457 に答える
2

私の知る限り、JAX-WS には CDI 統合がありません。CDI が JAX-WS の代わりに Bean を作成しており、インジェクションが混同されているように見えます。

于 2012-09-26T22:43:45.293 に答える