我在这里放了一个小样本应用:https://github.com/lakamsani/cdi-nested
MyResource是MyService的JAX-RS服务,是@Injected MyDao转入@Injected到MyService。当我运行它时(在TomEE 1.6.0.1中),MyDao在注入MyResource的MyService实例中为null。我需要做些什么来使它工作或者有另一种方法来做到这一点(没有明确地实例化对象)。
答案 0 :(得分:0)
我认为您所看到的是MyService的代理实例被注入MyResource。一旦你在MyService上调用了一个方法,就可以从正确的上下文中获取一个真实的实例,然后用MyDao注入它。
如果在将MyService注入MyResource时确实需要MyService的“真实”实例,则可以使MyService成为依赖的作用域cdi bean,而不是@Stateless EJB。
我可能误解了为什么在调用任何业务方法之前需要将MyDao注入MyService。