【问题标题】:How to produces a SessionContext in Wildfly如何在 Wildfly 中生成 SessionContext
【发布时间】:2013-09-10 05:41:36
【问题描述】:

我有这个类来生成一些 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 是测试版。谢谢各位。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。我同意您的评论,因为我的课程不是 EJB。你知道为什么这在 JBoss 7x 中可以正常工作吗?
    • 也许您在 ejb-jar.xml 中有额外的映射,或者 CDI 1.0 与 CDI 1.1 的行为不同,但公平地说,它不应该起作用。
    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2016-09-03
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多