Jersey:如何将EJB注入子资源?

 伴生约定_879 发布于 2023-01-30 17:50

我想在子资源中注入一个商务服务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(这里我推动我的其他问题'查看计数以获得更多意见;-))!

我尝试了我能想到的一切,但它不起作用......

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

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

1 个回答
  • 好的,我明白了.

    这真是一种愚蠢.有时你必须完全回滚.

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

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

    @RequestScoped
    @Path("service")
    public class MyResource {
    
        @Inject MySubResource mySubResource;
    
        // Sub resource locator
        @Path("subservice")
        public MySubResource locateToSubResource () {
            return mySubResource;
        }
    }
    

    对,就是那样.我必须承认,这是人们可以想象的最直观的解决方案,如果这种方法不起作用,就必须做错事......不要问我究竟是什么原因.

    我想它一如既往 - 睡眠剥夺让人们变成了蠢货.

    2023-01-30 17:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有