出于性能原因,默认情况下Jetty会缓存静态资源(如属性文件)。举例来说,像这样的代码:如何在Jetty中禁用服务器缓存
public class FrontServlet extends HttpServlet
{
private final Properties routes = new Properties();
@Override
public void init()
throws ServletException
{
try {
this.routes.load(this.getClass().getClassLoader().getResourceAsStream("routes.properties"));
} catch (IOException | NullPointerException e) {
throw new ServletException(e);
}
}
}
将继续工作,我删除routes.properties文件后,也因为它仍然可以从缓存中,而不是从磁盘。 The Eclipse Jetty plugin documentation也提到了这一点:寻找“禁用服务器缓存”。
现在,我想在开发环境中禁用此功能以避免误报。 The Jetty documentation提到有一个名为maxCacheSize的初始化参数,如果设置为0,则禁用缓存。不过,我想这既是一个环境参数:
org.eclipse.jetty.servlet.maxCacheSize
0
,并作为一个servlet的init参数:
...
org.eclipse.jetty.servlet.maxCacheSize
0
无济于事。
有谁知道如何做到这一点?
编辑:
的routes.properties文件仍发现我重新启动Web服务器后,也和流浪虚拟机运行它的。我还应该提及,我使用的是Maven Jetty plugin,因此启动了服务器mvn jetty:run。
2017-03-08
swahnee