- 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.ContainerLifeCycleServletTester 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 aLocalConnectorto 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
HttpTesterandLocalConnectorto 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 FilterHolderaddFilter(java.lang.Class<? extends javax.servlet.Filter> filterClass, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)FilterHolderaddFilter(java.lang.String filterClass, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)voidaddFilter(FilterHolder holder, java.lang.String pathSpec, java.util.EnumSet<javax.servlet.DispatcherType> dispatches)ServletHolderaddServlet(java.lang.Class<? extends javax.servlet.Servlet> servlet, java.lang.String pathSpec)ServletHolderaddServlet(java.lang.String className, java.lang.String pathSpec)voidaddServlet(ServletHolder servlet, java.lang.String pathSpec)voidaddVirtualHosts(java.lang.String[] virtualHosts)java.lang.StringcreateConnector(boolean localhost)Create a port based connector.org.eclipse.jetty.server.LocalConnectorcreateLocalConnector()java.lang.ObjectgetAttribute(java.lang.String name)java.util.Enumeration<java.lang.String>getAttributeNames()org.eclipse.jetty.util.AttributesgetAttributes()org.eclipse.jetty.util.resource.ResourcegetBaseResource()org.eclipse.jetty.server.LocalConnectorgetConnector()ServletContextHandlergetContext()java.lang.StringgetContextPath()java.lang.StringgetInitParameter(java.lang.String name)java.util.Enumeration<java.lang.String>getInitParameterNames()java.util.Map<java.lang.String,java.lang.String>getInitParams()java.lang.StringgetResourceBase()java.lang.StringgetResponses(java.lang.String request)java.lang.StringgetResponses(java.lang.String request, long idleFor, java.util.concurrent.TimeUnit units)java.nio.ByteBuffergetResponses(java.nio.ByteBuffer request)java.nio.ByteBuffergetResponses(java.nio.ByteBuffer requestsBuffer, long idleFor, java.util.concurrent.TimeUnit units)org.eclipse.jetty.server.ServergetServer()voidremoveAttribute(java.lang.String name)voidsetAttribute(java.lang.String name, java.lang.Object value)voidsetBaseResource(org.eclipse.jetty.util.resource.Resource resource)voidsetContextPath(java.lang.String contextPath)java.lang.StringsetInitParameter(java.lang.String name, java.lang.String value)voidsetResourceBase(java.lang.String resourceBase)voidsetVirtualHosts(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
-
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.ExceptionCreate 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()
-
-