【发布时间】: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 上找到的所有方法来尝试解决这个问题,但没有一个解决方案有效。所以现在我不确定还能做什么。有人有什么建议吗?
【问题讨论】:
-
你说你在tomcat上运行。您使用的是什么 CDI 运行时?
-
您可能还想查看 hk2 事件:hk2.java.net/2.5.0-b03/events.html
标签: java dependency-injection jersey glassfish cdi