gpt4 book ai didi

dependency-injection - Jersey : How to inject EJB into sub resource?

转载 作者:行者123 更新时间:2023-12-04 23:01:58 24 4
gpt4 key购买 nike

我想在专用类中定义并由子资源定位器提供的子资源中注入(inject)业务服务 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 调用依赖项...请注意,资源是托管对象。否则,甚至不可能在根资源( here I'm pushing my other questions' view count to get more opinions ;-) )中注入(inject) bean!

    我尝试了我能想到的一切,但它就是行不通...

    目前我正在使用 glassfish 4 附带的库。

    当然,提前谢谢你(差点忘了)!

    最佳答案

    好吧,我想通了。

    这真的有点愚蠢。有时您必须完全回滚。

    我最初的尝试一定有问题(错字,遗漏了一些东西......我无法重现它,无论如何)。

    我从上面稍微改变了根资源:

    @RequestScoped
    @Path("service")
    public class MyResource {

    @Inject MySubResource mySubResource;

    // Sub resource locator
    @Path("subservice")
    public MySubResource locateToSubResource () {
    return mySubResource;
    }
    }

    对,就是那样。我必须承认,这是人们可以想象的最直观的解决方案,如果这种方法不起作用,那么一定是做错了什么……不要问我到底是什么原因。

    我想这和往常一样——剥夺 sleep 会让人们变成白痴。

    关于dependency-injection - Jersey : How to inject EJB into sub resource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418679/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com