我在我的资源构造函数中注册了通过@InjectParam注入的jersey实例,我在MyResource调用时收到错误
构造函数public有一个Missing依赖项
SharedObjects和Dependency类在另一个jar中,这就是为什么我没有在那个类上使用@Singleton装饰器
我创建实例的应用程序类
@ApplicationPath("/api/*")
public class App extends Application {
private static final HashSet<Class<?>> classes = new HashSet<Class<?>>();
private static final Set<Object> singletons = new HashSet<Object>();
private final Dependency dependency1;
private final SharedObjects sharedObjects;
public App(){
this.dependency1 = new Dependency();
this.sharedObjects = new SharedObjects(this.dependency1);
this.singletons.add(sharedObjects);
this.classes.add(MyResource.class);
}
@Override
public Set<Class<?>> getClasses() {
return classes;
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
这是我的web.xml
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.api.rest.server.App</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
我的resoruce类,我想使用sharedObject
public HorusResource(@Context HttpServletRequest req, @InjectParam SharedObjects sharedObjects){