我尝试使用Jersey 2.0 / HK2构建示例RESTful应用程序。假定要注入的类已用@Service
注释,初始提交(如在https://github.com/venkatramachandran/restful-sample-tomcat/commit/6e5ee处看到的)应该已经起作用。但这不是。
我使用注册了org.glassfish.jersey.server.ResourceConfig
实例的org.glassfish.hk2.utilities.binding.AbstractBinder
实例创建了第二个提交(https://github.com/venkatramachandran/restful-sample-tomcat/commit/2ca30f)。活页夹基本上将我的@Contract
绑定到@Service
,它们基本上是同一类。
我的问题是,要使HK2正常工作,粘合剂是绝对必要的吗?还是我在导致org.glassfish.hk2.api.UnsatisfiedDependencyException
的初始提交中错过了一些配置?
最佳答案
是的,您需要对HK2执行某种绑定,以使其适用于这样的标准@Service
。为了避免将服务绑定到Jersey中,您可能需要考虑桥接到外部ServiceLocator以便提供服务,如this question中所述。
当然,@Contracts
作为接口通常是最佳做法,尽管显然不是强制性的。
关于rest - org.glassfish.hk2.api.UnsatisfiedDependencyException:SystemInjecteeImpl没有可用于注入(inject)的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30230070/