java - Jetty 9 and GzipHandler -
i'm trying configure jetty 9 server serve data gzip compressed. unfortunatelly can't find description fits use case. think have use new gziphandler instead of gzipfilter (starting jetty 9.3 gzipfilter dummy).
my setup war file deployed on jetty 9 installation or run maven-jetty-plugin. no embedded jetty. have jetty-env.xml in /src/main/resources/meta-inf/resources/web-inf. there no other jetty related config files. appreciate setup doesn't need changes on jetty installation. should possible enable compression additional configuration in war file. compress static (files /src/main/resources/ , webjars) , dynamic (generated jersey) content.
i hope did such setup , can give me hint.
regards, johannes
the jetty distribution solution
if using jetty-distribution, go add gzip module configured ${jetty.base}
eg:
$ cd /path/to/mybase $ java -jar /path/to/jetty-dist/start.jar --add-to-start=gzip you have added gziphandler configuration of server.
look @ contents of /path/to/mybase/start.ini configuration options.
some background
since introduction of servlet 3.1 , new async i/o features brings, gzipfilter based approach no longer possible.
the implementation of gzip support in jetty based on container http output interceptor pattern. means gziphandler has defined @ point in jetty handler tree before webapp , webappcontext exists.
this means cannot add gziphandler via web-inf/web.xml or contained within war file, far far late in lifecycle of server add gziphandler.
it not possible add gziphandler safely embedded web-inf/jetty-web.xml, webappcontext thing can safely manipulate file.
handler tree example
you have 2 webapps being deployed: foo.war , baz.war
this server handler tree when not using gzip ...
server +-- .gethandler() +-- handlercollection (id="handlers") +-- contexthandlercollection (id="contexts") | +-- webappcontext "/foo" (foo.war) | +-- webappcontext "/baz" (baz.war) +-- defaulthandler this server handler tree when gziphandler in mix
server +-- .gethandler() +-- gziphandler +-- handlercollection (id="handlers") +-- contexthandlercollection (id="contexts") | +-- webappcontext "/foo" (foo.war) | +-- webappcontext "/baz" (baz.war) +-- defaulthandler
Comments
Post a Comment