我在Jersey Java应用程序中有这样的Web服务:
@Singleton
@Path("/root")
public class MyWebService() {
private int count;
public MyWebService() {
count=0;
}
@Path("/perf/request")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getCount() {
String out = "";
count++;
out = "Count is: " + out;
return out;
}
}
由于Jersey生命周期,每次调用服务时都会重新实例化该类(尽管有“@Singleton”注释),然后每次计数等于零时都会重新实例化。 有没有办法让这个类/字段静态,所以“count”字段不会被重置?
答案 0 :(得分:1)
那应该完全奏效!根据文件:
在此范围内,每个jax-rs应用程序只有一个实例。 Singleton资源可以使用@Singleton及其注释 class可以使用Application实例注册。您可以 通过将单例实例注册到单元中来创建单例 应用
您是否在申请表中注册了课程?
public class MyApplication extends ResourceConfig {
/*Register JAX-RS application components.*/
public MyApplication () {
register(MyWebService.class);
}
}
您也可能导入了错误的注释类型。