A smaller example for gzip is also present in the cookbook ...

https://github.com/jetty-project/embedded-jetty-cookbook/blob/master/src/main/java/org/eclipse/jetty/cookbook/GzipResponsesExample.java


Joakim Erdfelt / [email protected]


On Wed, Feb 5, 2020 at 12:25 AM Olivier Lamy <[email protected]> wrote:

> 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
>
>
> On Wed, Feb 5, 2020 at 4:18 PM Visinescu, Daniel <
> [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]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://www.eclipse.org/mailman/listinfo/jetty-users
>
>
>
> --
> 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
_______________________________________________
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

Reply via email to