【发布时间】:2014-08-01 02:32:40
【问题描述】:
有两种很棒的技术 OSGI 和 CDI,我是这两种技术的新手。我使用 glassfish 4,当我开始使用它时,我希望如此出色的服务器能够提供我所学到的一切。现在我需要同时使用这两种技术。所以我在实践中所拥有的:
Bundle1 - servlet 作为前端控制器 + jsp
Bundle2 - 服务 提供控制器、命令、[模型]
Bundle3 - EJB。
我可以将 EJB 注入到 servlet - 没关系。我可以向 servlet 注入服务——没关系。但我不能做最必要的事情——我不能将 EJB 注入我的控制器/命令/模型等——在这里我必须手动查找 EJB,但我想使用 CDI!
我的想法:问题是我不能在没有 new 的情况下从 bundle2 创建这些对象!!!因为 osgi bundle 中的入口点是 osgi 服务。其他捆绑包通过其服务与此捆绑包一起使用。所以,我必须将我的对象注入到服务中——但这不起作用。以下是两个可能的原因:
- 我做错了什么
- weld\fighterfish 不支持它。
如果有人在我的想法中看到我的错误,请纠正我。所以问题是——我可以在控制器/命令中注入 EJB,由 bundle 2 的服务提供还是不可能?
【问题讨论】:
标签: java jakarta-ee dependency-injection osgi cdi