我有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在到达null
方法时总是save
(未注入)。
我已尝试将@ApplicationScoped
添加到MyWS
类,但同样的行为正在发生(NullPointerException
)。唯一的解决方案是将MyWS
声明为@Stateless
,但这不是真的有任何感觉,有吗?
这是JBoss EAP中的错误吗?
我的所有课程都在同一个war
项目中,我使用CDI 1.0规范WEB-INF/beans.xml
。我还有一个课程延长javax.ws.rs.core.Application
并声明@ApplicationPath
。
答案 0 :(得分:0)
如果您在web.xml中配置REST服务,我想这是一个错误。 我有同样的问题,我对此感到疯狂。 只需清理web.xml,就不应该有任何与REST相关的内容。 @ApplicationPath足以应对所有REST设置。