org.glassfish.hk2.api.UnsatisfiedDependencyException:SystemInjecteeImpl没有可用于注入的对象

时间:2015-05-14 05:43:21

标签: rest tomcat jersey-2.0 hk2

我尝试使用Jersey 2.0 / HK2构建一个示例RESTful应用程序。鉴于要注入的类使用@Service注释,初始提交(如https://github.com/venkatramachandran/restful-sample-tomcat/commit/6e5ee所示)应该有效。但事实并非如此。

我使用org.glassfish.jersey.server.ResourceConfig实例创建了第二个提交(https://github.com/venkatramachandran/restful-sample-tomcat/commit/2ca30f),该实例注册了org.glassfish.hk2.utilities.binding.AbstractBinder的实例。绑定器基本上将我的@Contract绑定到@Service,它们基本上是同一类。

我的问题是,HK2的工作绝对必要吗?或者我在初始提交中错过了一些导致org.glassfish.hk2.api.UnsatisfiedDependencyException

的配置

1 个答案:

答案 0 :(得分:1)

是的,您需要为HK2执行某种绑定,以便像这样使用标准@Service。为了防止必须在Jersey内绑定您的服务,您可能需要考虑桥接到外部ServiceLocator,以便提供您的服务,如this question中所述。

当然,通常最佳做法是将@Contracts作为接口,但显然不是强制性的。