Oh Sorry for the mistake. The library I am using is 9.4.24 From: [email protected] <[email protected]> On Behalf Of Olivier Lamy Sent: Wednesday, February 5, 2020 8:25 AM To: JETTY user mailing list <[email protected]> Subject: Re: [jetty-users] Enable GZIP
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi Please use last 9.4.26.v20200117 version as 9.2.x is not supported anymore. here you will find an example how to use GZIPHandler https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feclipse%2Fjetty.project%2Fblob%2Fjetty-9.4.x%2Fexamples%2Fembedded%2Fsrc%2Fmain%2Fjava%2Forg%2Feclipse%2Fjetty%2Fembedded%2FManyHandlers.java&data=02%7C01%7Cdaniel.visinescu%40ro.yokogawa.com%7C67f01096e29845ee5eec08d7aa0430fd%7C8256828717fd4481b09619a7cbd3780e%7C1%7C0%7C637164807769046075&sdata=dJq%2BAXkyH7dMuUOnr5UzyPiatl3guw3VvsnSEIl00BI%3D&reserved=0> On Wed, Feb 5, 2020 at 4:18 PM Visinescu, Daniel <[email protected]<mailto:[email protected]>> wrote: Dear all, I am using JETTY 9.2.24 Embedded with various handlers and tried multiple options to enable GZIP compression. Can anybody help out in setting up GZIP ?Any feedback is appreciated since the code below comes from Jetty 6 upgraded to 9.0.x and then latest distribution The clients accepts the compression but the server does not provided it Kind Regards, Daniel import org.eclipse.jetty.deploy.App; import org.eclipse.jetty.deploy.DeploymentManager; import org.eclipse.jetty.deploy.providers.WebAppProvider; import org.eclipse.jetty.server.*; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.server.handler.HandlerCollection; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.webapp.WebAppContext; import javax.servlet.ServletContext; import java.io.File; import java.io.IOException; import java.net.URL; import java.net.URLClassLoader; public class TestServer { private static Server mServer = null; public static final String AUTH_DIR = "auth/"; public static final String WEBAPPS_DIR = "webapps/"; /** * Starts the server */ public static void main(String[] args) { new TestServer(args); } /** * * @param args the command line options */ public TestServer(String[] args) { try { startWebServer(); } catch (Exception e) { System.exit(-1); } } /** * Starts the web server */ private void startWebServer() throws Exception { // start the web server mServer = new Server(); String mWapPath = "C:\\WAP"; // Make all WebContexts use the LST folder File mLST = new File("c:\\LST"+ File.separator + "jetty"); if (!mLST.exists()) { try { mLST.mkdir(); } catch(SecurityException ignored){ } } int mPort =8080; int mSecurePort = 8443; int mRequestHeaderSize = 32768; if (mSecurePort <= 0) { throw new IllegalArgumentException("Port number for HTTPS connector is mandatory"); } HttpConfiguration http_config = null; if (mPort > 0) { // HTTP Configuration http_config = new HttpConfiguration(); http_config.setSecureScheme("https"); http_config.setSecurePort(mSecurePort); http_config.setOutputBufferSize(32768); http_config.setRequestHeaderSize(mRequestHeaderSize); // HTTP connector ServerConnector http = new ServerConnector(mServer, new HttpConnectionFactory(http_config)); http.setPort(mPort); http.setIdleTimeout(30000); mServer.addConnector(http); } // SSL Context Factory for HTTPS (and SPDY) String mKeyStorePath = "mypath"; SslContextFactory sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(mKeyStorePath); sslContextFactory.setKeyStorePassword("password"); sslContextFactory.setKeyManagerPassword("password"); // HTTPS Configuration HttpConfiguration https_config = (http_config == null ? new HttpConfiguration() : new HttpConfiguration(http_config)); https_config.setRequestHeaderSize(mRequestHeaderSize); https_config.setOutputBufferSize(32768); https_config.addCustomizer(new SecureRequestCustomizer()); // HTTPS connector ServerConnector https = new ServerConnector(mServer, new SslConnectionFactory(sslContextFactory, "http/1.1"), new HttpConnectionFactory(https_config)); https.setPort(mSecurePort); https.setIdleTimeout(500000); mServer.addConnector(https); WebAppContext mWapContext = new WebAppContext(); mWapContext.setAttribute(ServletContext.TEMPDIR, mLST); mWapContext.setContextPath("/"); mWapContext.setDisplayName("[Server]"); mWapContext.setConfigurationClasses(new String[]{"org.eclipse.jetty.annotations.AnnotationConfiguration","org.eclipse.jetty.webapp.WebXmlConfiguration"}); mWapContext.setLogUrlOnStart(true); try { mWapContext.setBaseResource(Resource.newResource(mWapPath)); } catch (IOException ignored) { } // Setup handlers HandlerCollection mRootHandlers = new HandlerCollection(); // Handling Context(s) ContextHandlerCollection mAppCtxHndCol = new ContextHandlerCollection(); mAppCtxHndCol.setHandlers(new Handler[]{ mWapContext }); mRootHandlers.addHandler(mAppCtxHndCol); // Install WebApp Provider String mWebAppDir = mWapPath + WEBAPPS_DIR; WebAppProvider mAppProvider = new WebAppProvider(){ @Override protected App createApp(String filename){ return super.createApp(filename); } }; mAppProvider.setMonitoredDirName(mWebAppDir); /* The default descriptor is a web.xml format file that is applied to the context * before the standard WEB-INF/web.xml. Defaults to WebAppContext.WEB_DEFAULTS_XML */ mAppProvider.setDefaultsDescriptor(null); /* == Enable annotation processing. Servlet 3.0 API == * * The 'web-app' element in the web.xml must contain * the attribute: metadata-complete="false" * So that the .war will be scanned for @ annotations for dependancy injection */ /* ScanInterval pause between scans in seconds, or 0 for no scan after the initial scan.*/ mAppProvider.setScanInterval(0); /* For debug/testing */ mAppProvider.setExtractWars(true); /* Classloader to use parent classes first, instead of bundeled ones. non-default.. */ // mAppProvider.setParentLoaderPriority(true); /* Setup Deployment manager */ DeploymentManager mDeployMgr = new DeploymentManager(); mDeployMgr.addAppProvider(mAppProvider); mDeployMgr.setContextAttribute(ServletContext.TEMPDIR, mLST); mDeployMgr.setContexts(mAppCtxHndCol); // Set Classloader of Context to be sane (needed for JSTL) // JSP requires a non-System classloader, this simply wraps the // embedded System classloader in a way that makes it suitable // for JSP to use ClassLoader jspClassLoader = new URLClassLoader(new URL[0], this.getClass().getClassLoader()); mWapContext.setClassLoader(jspClassLoader); // Manually call JettyJasperInitializer on context startup mWapContext.addBean(new JspStarter(mWapContext)); /* Setup & Run server */ mServer.addBean(mDeployMgr); mServer.setHandler(mRootHandlers); try { mServer.start(); mServer.join(); } catch (Exception e) { e.printStackTrace(); } } } _______________________________________________ jetty-users mailing list [email protected]<mailto:[email protected]> To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.eclipse.org%2Fmailman%2Flistinfo%2Fjetty-users&data=02%7C01%7Cdaniel.visinescu%40ro.yokogawa.com%7C67f01096e29845ee5eec08d7aa0430fd%7C8256828717fd4481b09619a7cbd3780e%7C1%7C0%7C637164807769056068&sdata=XKLEotC6AStkwVtYm%2BKQiygdjFOs7Tp8AiSxwHX%2Bzms%3D&reserved=0> -- Olivier
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users
