- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.servlet.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 aLocalConnector
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
andLocalConnector
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
-
-
Constructor Summary
Constructors Constructor Description ServletTester()
ServletTester(java.lang.String ctxPath)
ServletTester(java.lang.String contextPath, int options)
-
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
-
-
-
-
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)
-
getContext
public ServletContextHandler getContext()
-
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()
-
-