【问题标题】:Java EE 6 CDI: @Injected field of a @Injected field is nullJava EE 6 CDI:@Injected 字段的 @Injected 字段为空
【发布时间】:2014-06-04 01:52:09
【问题描述】:

我在这里整理了一个小示例应用程序:https://github.com/lakamsani/cdi-nested

MyResource 是一个 JAX-RS 服务,MyService 是 @Injected MyDao 反过来 @Injected 到 MyService 中。当我运行它时(在 TomEE 1.6.0.1 中),MyDao 在注入到 MyResource 的 MyService 实例中为空。我需要做什么才能使其工作,或者是否有另一种方法(没有显式实例化对象)。

【问题讨论】:

    标签: java-ee-6 cdi apache-tomee


    【解决方案1】:

    我认为您看到的是 MyService 的代理实例被注入 MyResource。一旦你在 MyService 上调用了一个方法,就会从正确的上下文中获取一个真实的实例,然后将其注入 MyDao。

    如果在注入 MyResource 时确实需要 MyService 的“真实”实例,则可以将 MyService 设置为依赖范围的 cdi bean,而不是 @Stateless EJB。

    我可能误解了为什么您需要在调用任何业务方法之前将 MyDao 注入 MyService。

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多