在 JBoss EAP 6.2 中的 JAX-RS 类中@Inject @Stateless服务时的 NPE



我有那个 JAX-RS 网络服务:

@Path("/my")
public class MyWS {
    @Inject
    private MyService myService;
    @POST
    @Path("/save")
    @Consumes("application/json")
    public void save(SaveParam saveParam) {
        myService.save(saveParam);
    }
}

并且@Stateless服务:

@Stateless
public class MyService {
    @PersistenceContext
    protected EntityManager entityManager;
    @TransactionAttribute
    public void save(SaveParam saveParam) {
        entityManager.persist(saveParam);
    }
}

使用 JBoss EAP 6.2,myService 在到达save方法时始终null(而不是注入)。

我试图@ApplicationScoped添加到MyWS类中,但同样的行为正在发生(NullPointerException)。唯一的解决方案是将MyWS也声明为@Stateless,但这实际上没有任何意义,不是吗?

这是 JBoss EAP 中的错误吗?

我所有的类都在同一个war项目中,我有一个使用 CDI 1.0 规范的WEB-INF/beans.xml。我还有一个类扩展javax.ws.rs.core.Application并声明@ApplicationPath

我想如果您在 web.xml 中配置 REST 服务,这是一个错误。我有同样的问题,我对此感到疯狂。只需清理网络.xml它不应该有任何与 REST 相关的内容。@ApplicationPath对于所有 REST 设置来说已经足够了。

最新更新