我正在尝试在JBoss 7.1.1上的Jax-RS(RestEasy)服务中使用CDI(Weld)。
如果我在例如使用它,注射工作正常一个简单的servlet,但只要我在Jax-RS服务中执行相同的操作,它仍然是null
。没有错误,只是没有注射。阅读the JBoss RestEasy CDI Integration page时,一切看起来都很简单。
我尝试过的一些事情:
答案 0 :(得分:4)
我自己找到了这个问题的解决方案。知道解决方案,结果证明我没有在我的问题中显示完整的图片。
在我的XxxApplication(扩展javax.ws.rs.core.Application
)中,我在单例列表中添加了一个新的XxxService实例(!!)。
在我的XxxService中,我做了一个new B()
,其中B类的@Inject C
是剩下的null
。
事实证明,实例化XxxService和B类都会导致问题。
将XxxService.class添加到XxxApplication中的类列表(而不是将new XxxService()
添加到单例列表中)并在XxxService中使用@Inject B
时,所有注入都能正常工作,包括{{1}在B。