0

我有这个类来生成一些 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 有不同的方式,或者它是一个错误(因为 Wildfly 还没有准备好投入生产)?

更新使用从 Github 编译的最新版本的 Wildfly,此代码运行良好。我认为这是一个预期的错误,因为 Wildfly 是测试版。感谢你们。

4

1 回答 1

2

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

尝试将@Stateless 添加到 Resources 类。无论如何,您想为仅对当前 bean 有效的 SessionContext 创建生产者似乎有点奇怪。请参阅 javadoc,了解 SC 在哪里有效以及它与http://docs.oracle.com/javaee/7/api/javax/ejb/SessionContext.html有什么关系

于 2013-10-09T18:20:46.667 回答