我有一个项目,我正在尝试注入我的服务,但我不断收到注入 UserService 的空指针异常。而且我无法弄清楚我错过了什么。
我将项目添加到我的 github,https://github.com/JohnnyBekkestad/demo,请注意,为了专注于问题,我删除了很多代码来清理它。
如果有人能看到我所缺少的,我将不胜感激。
最好的问候约翰尼
我有一个项目,我正在尝试注入我的服务,但我不断收到注入 UserService 的空指针异常。而且我无法弄清楚我错过了什么。
我将项目添加到我的 github,https://github.com/JohnnyBekkestad/demo,请注意,为了专注于问题,我删除了很多代码来清理它。
如果有人能看到我所缺少的,我将不胜感激。
最好的问候约翰尼
您WAR
的文件在此处缺少beans.xml
文件:https ://github.com/JohnnyBekkestad/demo/tree/master/web/rest/src/main/webapp/WEB-INF
假设您正在尝试在此处注入服务,这就是 NPE 的来源:
如果使用 Tomcat,请查看本教程并记住添加 beans.xml,以更改 web.xml 并包含/排除不必要的依赖项 ( weld )。此外,没有这样的注释对
@Path
@ManagedBean
请记住:JAX-RS(或在您的情况下为 Jersey)会告诉您,当它找到任何实现时,这意味着 @Path 就足够了:
INFO: Root resource classes found:
class com.bekkestad.demo.web.rest.UserController
首先:Tomcat 不是 Java EE 容器。如果使用 GlassFish 4,请先熟悉 Java EE(@EJB > @Stateless),然后添加 CDI 功能 - 但是您不必添加任何依赖项,因为焊接已经可用(= 没有 context.xml 或 web.xml 中的更改需要,只是 WEB-INF 和所有其他项目 META-INF 目录中的 beans.xml)。