【问题标题】:Annotations (@EJB, @Resource, ...) within a RESTful ServiceRESTful 服务中的注解(@EJB、@Resource、...)
【发布时间】:2011-01-29 12:46:57
【问题描述】:

我正在尝试通过注释在我的 RESTful 服务 (RESTEasy) 中注入 EJB。

公共类 MyServelet 实现 MyServeletInterface {

...

@EJB

我的豆豆;

...

}

不幸的是,没有编译或 AS 错误,变量“mybean”只是 null,当我尝试使用它时得到 NullPointerException。

我做错了什么?

以下是关于我的架构的一些附带信息:

  • JBoss 4.2.2.GA
  • Java 版本:1.5.0_17
  • 本地 MDB 项目
  • 远程 EJB 项目
  • 带有 RESTful 服务的 WAR 项目,它使用远程 EJB 并将消息发送到本地 MDB 项目

提前致谢!

br 多米尼克

p.s:当我使用正常的上下文查找时,一切正常。

【问题讨论】:

    标签: java rest jakarta-ee ejb-3.0


    【解决方案1】:

    我遇到了类似的问题(尽管没有 @Remote bean)。它为我工作的方式 - 示例应用程序在这里:https://github.com/kubamarchwicki/rest-app/(这个工作:https://github.com/kubamarchwicki/rest-app/blob/master/service-webapp/src/main/webapp/WEB-INF/web.xml#L9

    上下文查找的破解是耳朵名字的变化,名字的变化。如果您喜欢版本之类的东西,它会使整个事情难以追踪或迫使您在代码中的某处硬编码耳朵名称。

    旧讨论只需几美分;-)

    【讨论】:

      【解决方案2】:

      JBoss 4.2.2.GA 仅支持 Servlet 2.4。 Servlet 2.4 不支持 DI。因此,对于 myBean 变量,您总是会得到“null”。如建议的那样,请迁移到支持 Servlet 2.5 的 JBoss 5.0,该 Servlet 2.5 使用 Java 5 的特性,如注解。

      【讨论】:

        【解决方案3】:

        JBoss 4.2.2.GA 不是完全兼容 Java EE 5 服务器,它不支持在 servlet 或应用程序客户端中注入 EJB 引用,仅在 EJB 层中。为此使用 JBoss 5(或执行查找)。

        【讨论】:

        • 好的,所以我将尝试 JBoss 5。我已经执行了查找作为解决方法。谢谢!
        【解决方案4】:

        这不完全是我的强项,所以也许我还差得远……但是,你能在 WAR 中做 EJB 的事情吗?我的印象是您需要在 EAR 中进行 EJB 工作。

        【讨论】:

        • doh...抱歉...我应该更仔细地阅读。我刚刚注意到“远程 EJB 项目”......我很抱歉。
        猜你喜欢
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 2012-01-01
        • 1970-01-01
        • 2014-09-21
        • 2016-01-07
        • 2015-01-17
        • 1970-01-01
        相关资源
        最近更新 更多