我尝试使用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
?
答案 0 :(得分:1)
是的,您需要为HK2执行某种绑定,以便像这样使用标准@Service
。为了防止必须在Jersey内绑定您的服务,您可能需要考虑桥接到外部ServiceLocator,以便提供您的服务,如this question中所述。
当然,通常最佳做法是将@Contracts
作为接口,但显然不是强制性的。