【发布时间】:2014-02-20 12:34:31
【问题描述】:
我想在子资源中注入一个业务服务 bean,该资源在专用类中定义并由子资源定位器提供。
一些示例代码:
-
根资源
@RequestScoped @Path("service") public class MyResource { @Context ResourceContext resourceContext; // Sub resource locator @Path("subservice") public MySubResource locateToSubResource () { // I don't want to create it myself. return resourceContext.getResource(MySubResource.class); } } -
对应的子资源
@RequestScoped public class MySubResource { // Note that businessBean itself consists of // multiple ejbs that also need to be injected so that it can do its job! @Inject private BusinessBean businessBean; @GET @Produces(MediaType.TEXT_PLAIN) public String get () { return businessBean.doStuff(); } }
Jersey 不会让 CDI 调用依赖项...请注意,资源是托管对象。否则甚至无法在根资源中注入 bean (here I'm pushing my other questions' view count to get more opinions ;-))!
我尝试了所有我能想到的方法,但它不起作用......
目前我正在使用 glassfish 4 附带的库。
当然,提前谢谢你(差点忘了)!
【问题讨论】:
标签: dependency-injection ejb jax-rs jersey-2.0