【问题标题】:How to use CDI Events in Java Jersey?如何在 Java Jersey 中使用 CDI 事件?
【发布时间】:2016-07-28 23:26:44
【问题描述】:

我正在尝试关注这篇帖子的投票答案:Best practice for REST token-based authentication with JAX-RS and Jersey

我正在使用 CDI 方法,在我的过滤器中我有定义:

@Inject
@AuthenticatedUser
Event<String> userAuthenticatedEvent;

但是,当我运行 tomcat 7 时,出现以下错误:

org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=Event<String>,parent=AuthenticationFilter,qualifiers={@com.wink.rest.security.annotation.AuthenticatedUser()},position=-1,optional=false,self=false,unqualified=null,567185196)
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:75)
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:945)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:979)
    at org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanHk2Factory$2.getInstance(AbstractCdiBeanHk2Factory.java:142)
    at org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanHk2Factory._provide(AbstractCdiBeanHk2Factory.java:91)
    at org.glassfish.jersey.ext.cdi1x.internal.GenericCdiBeanHk2Factory.provide(GenericCdiBeanHk2Factory.java:63)

我已经尝试了我在 google 和 stackoverflow 上找到的所有方法来尝试解决这个问题,但没有一个解决方案有效。所以现在我不确定还能做什么。有人有什么建议吗?

【问题讨论】:

标签: java dependency-injection jersey glassfish cdi


【解决方案1】:

在解决同样的问题后,我找到了解决方案。我从 TomCat 切换到 Glassfish 并更新了 maven 依赖项以匹配来自 official Jersey 2 documentation 的依赖项。之后它就像魔术一样工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 2018-01-16
    • 2013-05-05
    相关资源
    最近更新 更多