org.glassfish.hk2.api.UnsatisfiedDependencyException: 在 SystemInjecteeImpl 中没有可用于注入的对象
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl
我尝试使用 Jersey 2.0/HK2 构建示例 RESTful 应用程序。初始提交(如 https://github.com/venkatramachandran/restful-sample-tomcat/commit/6e5ee 所示)应该有效,因为要注入的 class 已用 @Service
注释。但这没有。
我使用 org.glassfish.jersey.server.ResourceConfig
实例创建了第二个提交(https://github.com/venkatramachandran/restful-sample-tomcat/commit/2ca30f),该实例注册了 org.glassfish.hk2.utilities.binding.AbstractBinder
的实例。活页夹基本上将我的 @Contract
绑定到 @Service
,它们基本相同 class.
我的问题是,活页夹是 HK2 工作所必需的吗?还是我在初始提交中遗漏了一些导致 org.glassfish.hk2.api.UnsatisfiedDependencyException
的配置?
是的,您需要为 HK2 执行某种绑定才能为这样的标准 @Service
工作。为了避免必须在 Jersey 内绑定您的服务,您可能需要考虑桥接到外部 ServiceLocator 以提供您的服务,如 this question.
中所述
当然,您的 @Contracts
通常最好的做法是接口,尽管显然不是强制性的。
我尝试使用 Jersey 2.0/HK2 构建示例 RESTful 应用程序。初始提交(如 https://github.com/venkatramachandran/restful-sample-tomcat/commit/6e5ee 所示)应该有效,因为要注入的 class 已用 @Service
注释。但这没有。
我使用 org.glassfish.jersey.server.ResourceConfig
实例创建了第二个提交(https://github.com/venkatramachandran/restful-sample-tomcat/commit/2ca30f),该实例注册了 org.glassfish.hk2.utilities.binding.AbstractBinder
的实例。活页夹基本上将我的 @Contract
绑定到 @Service
,它们基本相同 class.
我的问题是,活页夹是 HK2 工作所必需的吗?还是我在初始提交中遗漏了一些导致 org.glassfish.hk2.api.UnsatisfiedDependencyException
的配置?
是的,您需要为 HK2 执行某种绑定才能为这样的标准 @Service
工作。为了避免必须在 Jersey 内绑定您的服务,您可能需要考虑桥接到外部 ServiceLocator 以提供您的服务,如 this question.
当然,您的 @Contracts
通常最好的做法是接口,尽管显然不是强制性的。