我正在尝试通过Annotations在我的RESTful服务(RESTEasy)中注入EJB。
公共类MyServelet实现了MyServeletInterface {
...
@EJB
MyBean mybean;
...
}
不幸的是没有编译或AS错误,变量“mybean”只是null,当我尝试使用它时,我得到一个NullPointerException。
我做错了什么?
以下是我的架构的一些侧面信息:
提前致谢!
BR 多米尼克
p.s:当我使用普通的上下文查找时,一切正常。
答案 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)
带有上下文查找的破解是名称随着耳朵名称的变化而变化。如果您喜欢版本之类的东西,它会使整个事情难以追踪或迫使您在代码中的某处硬编码耳朵名称。
旧讨论只需几美分; - )
答案 1 :(得分:0)
这不完全是我的强项,所以也许我离开了......但是,你能在WAR中做EJB内容吗?我认为你需要在EAR中进行EJB工作。
答案 2 :(得分:0)
JBoss 4.2.2.GA不是完全兼容的Java EE 5服务器,它不支持在Servlet或应用程序客户机中注入EJB引用,仅支持EJB层。使用JBoss 5(或执行查找)。
答案 3 :(得分:0)
JBoss 4.2.2.GA仅支持Servlet 2.4。 Servlet 2.4上没有DI的支持。因此,对于myBean变量,您总是得到'null'。如建议的那样,请迁移到支持Servlet 2.5的JBoss 5.0,它使用Java 5等注释功能。