如果未在JAX-RS资源上指定@ApplicationScoped
,则在下面的行中,
ManagedExecutorService
的@Resource注入未发生,我遇到了NullPointerException
。
但是当我将@ApplicationScoped
和@Path
一起添加时,我可以看到ManagedExecutorService
资源注入已正确进行。
请帮助找出JAX-RS资源之间的区别
仅使用@Path("/uri")
,并且当@Path("/uri")
与@ApplicationScoped
/ @RequestScoped
一起使用时。
使用的IDE和服务器分别是Netbeans和Glassfish 5。
答案 0 :(得分:2)
资源类实例的生命周期由CDI或JAX-RS管理。在资源类上添加@ApplicationScoped
后,它就由CDI管理。那就是区别。如果不是CDI管理的,则不能注入CDI @Resource
。
答案 1 :(得分:0)
只能为容器托管类注入资源。