【问题标题】:Using CDI with Jersey 2.x Deployed on Jetty将 CDI 与部署在 Jetty 上的 Jersey 2.x 一起使用
【发布时间】:2016-11-12 16:19:15
【问题描述】:

我正在尝试将最初使用 Grizzly(嵌入式 Glassfish)编写的 Jersey 2.x 项目转换为不使用 Grizzly。该应用程序将部署到 Jetty 服务器 (9.3)。

一旦我摆脱了所有 Grizzly 引用,添加了我的 web.xml 等...我收到了一堆错误,我对 @Inject 的所有引用都不起作用。

最初的应用程序使用 Weld 来处理所有 CDI 内容;我的印象是 CDI 是内置在 Jetty 中的,不是这样吗?

在我的 POM 中,我包含了所有球衣服务器部门。我收到错误的第一个地方是在执行 Oauth 请求过滤的文件中......它实现了 ContainerRequestFilter 并具有 @Priority(Priorities.AUTHENTICATION) 的注释。在这个类里面我有一些类的@Inject 来做查找。

@Inject
private OauthManager manager

当 Jetty 启动时,它告诉我它找不到 OauthManager 来注入这个类。

【问题讨论】:

    标签: jetty cdi jersey-2.0


    【解决方案1】:

    CDI 未内置在 Jetty 中。

    CDI 由 Weld 项目提供,在 Jetty 上运行良好。

    有关如何设置的详细信息,请参阅先前的答案。

    https://stackoverflow.com/a/20505983/775715

    【讨论】:

    • 所以,是的……我能够部署应用程序……而且它似乎可以工作,但是,每当我尝试访问任何东西时……它告诉我不止一个 @到处都是 RequestScope 上下文……这让我有点烦。
    猜你喜欢
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多