如何在Wildfly中生成SessionContext

时间:2013-09-10 05:41:37

标签: java-ee java-ee-7 wildfly

我有这个类来生成一些Java EE资源。我的项目是带有EJB和CDI的EAR。

public class Resources {

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

它在JBoss AS 7中运行良好。但是当我使用Wildfly(今天从github编译的beta1)时,我得到了这个例外。

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

怎么了?如何使用Wildfly生成SessionContext? Wildfly有一种不同的方式,或者它是一个bug(因为Wildfly尚未准备好生产)?

更新使用从Github编译的Wildfly的最新版本,此代码可以正常工作。我认为这是一个预期的错误,因为Wildfly是测试版。谢谢你们。

1 个答案:

答案 0 :(得分:2)

SessionContext是与当前会话bean相关的上下文。 在你的情况下,Resources类不是任何类型的ejb bean,这就是未注入SessionContext的原因。

尝试将@Stateless添加到Resources类。 在任何情况下,你想为SessionContext创建生成器似乎有点奇怪,它只对当前bean有效。 请参阅有关SC有效的javadoc以及它与http://docs.oracle.com/javaee/7/api/javax/ejb/SessionContext.html

的相关内容