Class ServletTester

  • All Implemented Interfaces:
    org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle

    public class ServletTester
    extends org.eclipse.jetty.util.component.ContainerLifeCycle

    ServletTester is not best practice and may be deprecated and eventually removed in future Jetty versions.

    ServletTester is a just a wrapper around a ServletContextHandler, with a LocalConnector to accept HTTP/1.1 requests, so there is no value that this class adds to already existing classes.

    Replace its usages with:

     Server server = new Server();
     LocalConnector connector = new LocalConnector(server);
     server.addConnector(connector);
     ServletContextHandler context = new ServletContextHandler(server, "/contextPath");
     // Configure the context here.
     server.start();
     

    You can configure the context by adding Servlets and Filters, attributes, etc. even after it has been started. Use HttpTester and LocalConnector to make HTTP/1.1 requests, in this way:

     // Generate the request.
     HttpTester.Request request = HttpTester.newRequest();
     request.setMethod("GET");
     request.setURI("/contextPath/servletPath");
     request.put(HttpHeader.HOST, "localhost");
     ByteBuffer requestBuffer = request.generate();
    
     // Send the request buffer and get the response buffer.
     ByteBuffer responseBuffer = connector.getResponse(requestBuffer);
    
     // Parse the response buffer.
     HttpTester.Response response = HttpTester.parseResponse(responseBuffer);
     assert response.getStatus() == HttpStatus.OK_200;
     

    Alternatively, you can use raw strings for requests and responses, but you must be sure the request strings are in the correct HTTP/1.1 format:

     String rawRequest = "" +
             "GET /contextPath/servletPath HTTP/1.1\r\n" +
             "Host: localhost\r\n" +
             "\r\n";
     String rawResponse = connector.getResponse(rawRequest);
     HttpTester.Response response = HttpTester.parseResponse(rawResponse);
     
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      FilterHolder addFilter​(java.lang.Class<? extends javax.servlet.Filter> filterClass, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)  
      FilterHolder addFilter​(java.lang.String filterClass, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)  
      void addFilter​(FilterHolder holder, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)  
      ServletHolder addServlet​(java.lang.Class<? extends javax.servlet.Servlet> servlet, java.lang.String pathSpec)  
      ServletHolder addServlet​(java.lang.String className, java.lang.String pathSpec)  
      void addServlet​(ServletHolder servlet, java.lang.String pathSpec)  
      void addVirtualHosts​(java.lang.String[] virtualHosts)  
      java.lang.String createConnector​(boolean localhost)
      Create a port based connector.
      org.eclipse.jetty.server.LocalConnector createLocalConnector()  
      java.lang.Object getAttribute​(java.lang.String name)  
      java.util.Enumeration<java.lang.String> getAttributeNames()  
      org.eclipse.jetty.util.Attributes getAttributes()  
      org.eclipse.jetty.util.resource.Resource getBaseResource()  
      org.eclipse.jetty.server.LocalConnector getConnector()  
      ServletContextHandler getContext()  
      java.lang.String getContextPath()  
      java.lang.String getInitParameter​(java.lang.String name)  
      java.util.Enumeration<java.lang.String> getInitParameterNames()  
      java.util.Map<java.lang.String,​java.lang.String> getInitParams()  
      java.lang.String getResourceBase()  
      java.lang.String getResponses​(java.lang.String request)  
      java.lang.String getResponses​(java.lang.String request, long idleFor, java.util.concurrent.TimeUnit units)  
      java.nio.ByteBuffer getResponses​(java.nio.ByteBuffer request)  
      java.nio.ByteBuffer getResponses​(java.nio.ByteBuffer requestsBuffer, long idleFor, java.util.concurrent.TimeUnit units)  
      org.eclipse.jetty.server.Server getServer()  
      void removeAttribute​(java.lang.String name)  
      void setAttribute​(java.lang.String name, java.lang.Object value)  
      void setBaseResource​(org.eclipse.jetty.util.resource.Resource resource)  
      void setContextPath​(java.lang.String contextPath)  
      java.lang.String setInitParameter​(java.lang.String name, java.lang.String value)  
      void setResourceBase​(java.lang.String resourceBase)  
      void setVirtualHosts​(java.lang.String[] vhosts)  
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, destroy, doStart, doStop, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Container

        getCachedBeans, getEventListeners
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
    • Constructor Detail

      • ServletTester

        public ServletTester()
      • ServletTester

        public ServletTester​(java.lang.String ctxPath)
      • ServletTester

        public ServletTester​(java.lang.String contextPath,
                             int options)
    • Method Detail

      • getServer

        public org.eclipse.jetty.server.Server getServer()
      • getConnector

        public org.eclipse.jetty.server.LocalConnector getConnector()
      • setVirtualHosts

        public void setVirtualHosts​(java.lang.String[] vhosts)
      • addVirtualHosts

        public void addVirtualHosts​(java.lang.String[] virtualHosts)
      • addServlet

        public ServletHolder addServlet​(java.lang.String className,
                                        java.lang.String pathSpec)
      • addServlet

        public ServletHolder addServlet​(java.lang.Class<? extends javax.servlet.Servlet> servlet,
                                        java.lang.String pathSpec)
      • addServlet

        public void addServlet​(ServletHolder servlet,
                               java.lang.String pathSpec)
      • addFilter

        public void addFilter​(FilterHolder holder,
                              java.lang.String pathSpec,
                              java.util.EnumSet<javax.servlet.DispatcherType> dispatches)
      • addFilter

        public FilterHolder addFilter​(java.lang.Class<? extends javax.servlet.Filter> filterClass,
                                      java.lang.String pathSpec,
                                      java.util.EnumSet<javax.servlet.DispatcherType> dispatches)
      • addFilter

        public FilterHolder addFilter​(java.lang.String filterClass,
                                      java.lang.String pathSpec,
                                      java.util.EnumSet<javax.servlet.DispatcherType> dispatches)
      • getAttribute

        public java.lang.Object getAttribute​(java.lang.String name)
      • getAttributeNames

        public java.util.Enumeration<java.lang.String> getAttributeNames()
      • getAttributes

        public org.eclipse.jetty.util.Attributes getAttributes()
      • getContextPath

        public java.lang.String getContextPath()
      • getInitParameter

        public java.lang.String getInitParameter​(java.lang.String name)
      • setInitParameter

        public java.lang.String setInitParameter​(java.lang.String name,
                                                 java.lang.String value)
      • getInitParameterNames

        public java.util.Enumeration<java.lang.String> getInitParameterNames()
      • getInitParams

        public java.util.Map<java.lang.String,​java.lang.String> getInitParams()
      • removeAttribute

        public void removeAttribute​(java.lang.String name)
      • setAttribute

        public void setAttribute​(java.lang.String name,
                                 java.lang.Object value)
      • setContextPath

        public void setContextPath​(java.lang.String contextPath)
      • getBaseResource

        public org.eclipse.jetty.util.resource.Resource getBaseResource()
      • setBaseResource

        public void setBaseResource​(org.eclipse.jetty.util.resource.Resource resource)
      • getResourceBase

        public java.lang.String getResourceBase()
      • setResourceBase

        public void setResourceBase​(java.lang.String resourceBase)
      • getResponses

        public java.lang.String getResponses​(java.lang.String request)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getResponses

        public java.lang.String getResponses​(java.lang.String request,
                                             long idleFor,
                                             java.util.concurrent.TimeUnit units)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getResponses

        public java.nio.ByteBuffer getResponses​(java.nio.ByteBuffer request)
                                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getResponses

        public java.nio.ByteBuffer getResponses​(java.nio.ByteBuffer requestsBuffer,
                                                long idleFor,
                                                java.util.concurrent.TimeUnit units)
                                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createConnector

        public java.lang.String createConnector​(boolean localhost)
                                         throws java.lang.Exception
        Create a port based connector. This methods adds a port connector to the server
        Parameters:
        localhost - true if connector should use localhost, false for default host behavior.
        Returns:
        A URL to access the server via the connector.
        Throws:
        java.lang.Exception - on test failure
      • createLocalConnector

        public org.eclipse.jetty.server.LocalConnector createLocalConnector()