我尝试使用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/

10-09 07:28