我使用Tomcat 6,我使用的吉斯注入我的資源,並創造了Servlet一個JAX-RS web服務提供。確保資源使用JAX-RS破壞,Tomcat和吉斯
我肯定患了內存泄漏,我想這是因爲我沒有處理請求的任何一個結束或應用程序的關閉。
如果我不斷刷新對服務請求我可以看到,內存使用Tomcat爬升不會減少,直到我的Tomcat回收。
我試圖RTFM,但我不grokking的生命週期。
我創建使用
public class RadWebServiceServletConfig extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new JerseyServletModule() {
@Override
protected void configureServlets() {
// Must configure at least one JAX-RS resource or the
// server will fail to start.
bind(Crags.class);
bind(IDataFacade.class).to(DataFacade.class);
bind(IRepository.class).to(Repository.class);
//filter all requests to log
filter("/*").through(LoggingFilter.class);
// Route all requests through GuiceContainer
Map<String, String> params = new HashMap<String, String>();
params.put("com.sun.jersey.spi.container.ContainerRequestFilters",
"com.sun.jersey.api.container.filter.GZIPContentEncodingFilter");
params.put("com.sun.jersey.spi.container.ContainerResponseFilters",
"com.sun.jersey.api.container.filter.GZIPContentEncodingFilter");
serve("/*").with(GuiceContainer.class, params);
}
});
}
}
所以我是不是傻了Servlet?我在哪裏捕捉到請求或應用上下文的結尾?