JavaEE 7:CDI + OSGI - 一个真实的例子

时间:2014-06-11 06:33:00

标签: java java-ee dependency-injection osgi cdi

OSGI和CDI有两项伟大的技术,我和他们都是新手。我使用glassfish 4,当我开始使用它时,我希望这么好的服务器能提供我学到的所有知识。现在我需要使用这两种技术。所以我在实践中有:

  

Bundle1 - servlet as frontcontroller + jsp
Bundle2 - service   提供控制器,命令,[模型]
Bundle3 - EJB。

我可以将EJB注入servlet - 没关系。我可以为servlet注入服务 - 没关系。但我不能做最必要的事情 - 我不能将EJB注入我的控制器/命令/模型等 - 这里我必须手动查找EJB,但我想使用CDI!

我的想法:问题是我无法在没有新的情况下从bundle2创建这些对象!因为osgi包中的入口点是osgi服务。其他捆绑包通过其服务与此捆绑包一起使用。因此,我必须将我的物品注入服务 - 但这并不起作用。这有两个可能的原因:

  1. 我做错了什么
  2. 焊接\ fighterfish不支持。
  3. 如果有人在我的想法中看到我的错误,请纠正我。所以问题 - 我可以在控制器/命令中注入EJB,这是由bundle 2的服务提供的,还是不可能的?

1 个答案:

答案 0 :(得分:1)

只需将无状态会话bean用于bundle 2中的服务即可。您可以轻松注入EJB。