0

このクラスを使用して、いくつかの Java EE リソースを生成します。私のプロジェクトは、EJB と CDI を使用する EAR です。

public class Resources {

    @Dependent
    @Produces
    @Resource(mappedName = "java:comp/EJBContext")
    protected SessionContext sessionContext;
}

JBoss AS 7 では正常に動作します。しかし、Wildfly (今日の github からコンパイルされたベータ 1) を使用すると、この例外が発生します。

Caused by: org.jboss.weld.exceptions.NullInstanceException: WELD-000044: Unable to obtain instance from null

どうしたの?Wildfly を使用して SessionContext を生成するにはどうすればよいですか? Wildfly には別の方法がありますか、それともバグですか (Wildfly はまだ実稼働の準備ができていないため)。

更新Github からコンパイルされた最新バージョンの Wildfly を使用すると、このコードは正常に動作します。Wildfly はベータ版なので、これは予想されたバグだったと思います。君たちありがとう。

4

1 に答える 1

2

SessionContext は、現在のセッション Bean に関連するコンテキストです。あなたの場合、 Resources クラスはどのような種類の ejb Bean でもないため、SessionContext は注入されません。

Resources クラスに @Stateless を追加してみてください。いずれにせよ、現在の Bean に対してのみ有効な SessionContext のプロデューサーを作成するのは少し奇妙に思えます。SC が有効な場所とhttp://docs.oracle.com/javaee/7/api/javax/ejb/SessionContext.htmlとの関連については、javadoc を参照してください。

于 2013-10-09T18:20:46.667 に答える