I use Jetty9 and I want to test if compressing text files will increase performance. At first I'm interested in serving off-line compressed files just like it is described at: http://marianoguerra.org/posts/201205enable-gzip-compression-in-jetty.html
My code looks like:
static private void set_jetty_handlers(Server server)
{
// gzip: I have added it to to serve off-line compressed JavaScript, CSS etc.
// as described at: http://marianoguerra.org/posts/201205enable-gzip-compression-in-jetty.html
ServletHolder servletHolder = new ServletHolder(new DefaultServlet());
servletHolder.setInitParameter("gzip", "true");
ServletContextHandler s_context_handler = new ServletContextHandler();
s_context_handler.addServlet(servletHolder,"/*");
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(false);
resource_handler.setWelcomeFiles(new String[] {"index.html"});
resource_handler.setResourceBase("");
resource_handler.setCacheControl(MAX_AGE);
// gzip: I have added it to to serve offline compressed JavaScript, CSS etc.
resource_handler.setHandler(s_context_handler);
// I want to work with aliases (links and symbolic links)
ContextHandler context_handler = new ContextHandler();
context_handler.addAliasCheck(new ContextHandler.ApproveAliases());
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { new my_jetty_handler(), resource_handler, new DefaultHandler() });
context_handler.setHandler(handlers);
server.setHandler(context_handler);
configureThreadPool(server);
} // set_jetty_handlers
But when I compressed test.html
into test.html.gz
then I got HTTP ERROR: 404
. Lines I added to enable gzip compression are tagged with gzip:
in comment.
I have also found that older version of Jetty had ResourceHandler.setMinGzipLength()
. It is not available in current Jetty version but from documentation it does what I want.
How to enable gzip compression? At first I want to test static files compression, but after those tests I want to apply GzipFilter
in my my_jetty_handler()
that serves dynamic content and is also unclear how to do it from Java code.