你会在网上找到许多建议,包括
context.getInitParams()。put(“ useFileMappedBuffer”,“ false”);
或覆盖WebAppContext,或为init参数使用完全限定的名称。这些建议对我都不起作用(使用Jetty 7.2.2)。问题的一部分在于,useFileMappedBuffer选项需要在WebAppContext用于提供静态文件的servlet上设置,而不是在上下文上设置。
最后,我在一个简单的ServletContextHandler上做了类似的事情
// Startup stuff
final Server server = new Server(port);
ServletContextHandler handler = new ServletContextHandler();
handler.setResourceBase(path);
SessionManager sm = new HashSessionManager();
SessionHandler sh = new SessionHandler(sm);
handler.setSessionHandler(sh);
DefaultServlet defaultServlet = new DefaultServlet();
ServletHolder holder = new ServletHolder(defaultServlet);
holder.setInitParameter("useFileMappedBuffer", "false");
handler.addServlet(holder, "/");
server.setHandler(handler);
server.start();
server.join();