Top Description Fields Constructors Methods
org.eclipse.jetty.ee10.servlet

public Class ServletTester

extends ContainerLifeCycle
Class Inheritance
Imports
java.net.InetAddress, java.nio.ByteBuffer, java.util.Collections, .EnumSet, .Enumeration, .List, .Map, java.util.concurrent.TimeUnit, jakarta.servlet.DispatcherType, .Filter, .Servlet, org.eclipse.jetty.http.HttpTester, org.eclipse.jetty.server.Connector, .LocalConnector, .Server, .ServerConnector, org.eclipse.jetty.util.Attributes, .BufferUtil, org.eclipse.jetty.util.component.ContainerLifeCycle, org.eclipse.jetty.util.resource.Resource, org.slf4j.Logger, .LoggerFactory

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);

Field Summary

Modifier and TypeField and Description
private final LocalConnector
private final ServletContextHandler
private final Server
private static final Logger

Constructor Summary

AccessConstructor and Description
public
public
public
ServletTester(String contextPath, int options)

Method Summary

Modifier and TypeMethod and Description
public void
addFilter(FilterHolder holder, String pathSpec, EnumSet<DispatcherType> dispatches)

public FilterHolder
addFilter(Class<? extends Filter> filterClass, String pathSpec, EnumSet<DispatcherType> dispatches)

public FilterHolder
addFilter(String filterClass, String pathSpec, EnumSet<DispatcherType> dispatches)

public ServletHolder
addServlet(String className, String pathSpec)

public ServletHolder
addServlet(Class<? extends Servlet> servlet, String pathSpec)

public void
addServlet(ServletHolder servlet, String pathSpec)

public void
addVirtualHosts(String[] virtualHosts)

public String

Returns:

A URL to access the server via the connector.
createConnector
(boolean
true if connector should use localhost, false for default host behavior.
localhost
)

Create a port based connector.

public LocalConnector
public Object
public Enumeration<String>
public Attributes
public LocalConnector
public ServletContextHandler
public String
public String
public Enumeration<String>
public Map<String, String>
public Resource
public String
public String
getResponses(String request, long idleFor, TimeUnit units)

public ByteBuffer
public ByteBuffer
getResponses(ByteBuffer requestsBuffer, long idleFor, TimeUnit units)

public Server
public void
public void
setAttribute(String name, Object value)

public void
setContextPath(String contextPath)

public String
public void
public void
Inherited from org.eclipse.jetty.util.component.ContainerLifeCycle:
addBeanaddBeanaddEventListeneraddManagedcontainsdestroydoStartdoStopdumpdumpdumpdumpObjectsdumpStdErrgetBeangetBeansgetBeansgetContainedBeansgetContainedBeansisAutoisManagedisUnmanagedmanageremoveBeanremoveBeansremoveEventListenersetBeansstartstopunmanageupdateBeanupdateBeanupdateBeansupdateBeans

Field Detail

_connectorback to summary
private final LocalConnector _connector
_contextback to summary
private final ServletContextHandler _context
_serverback to summary
private final Server _server
LOGback to summary
private static final Logger LOG

Hides org.eclipse.jetty.util.component.ContainerLifeCycle.LOG.

Constructor Detail

ServletTesterback to summary
public ServletTester()
ServletTesterback to summary
public ServletTester(String ctxPath)
ServletTesterback to summary
public ServletTester(String contextPath, int options)

Method Detail

addFilterback to summary
public void addFilter(FilterHolder holder, String pathSpec, EnumSet<DispatcherType> dispatches)
addFilterback to summary
public FilterHolder addFilter(Class<? extends Filter> filterClass, String pathSpec, EnumSet<DispatcherType> dispatches)
addFilterback to summary
public FilterHolder addFilter(String filterClass, String pathSpec, EnumSet<DispatcherType> dispatches)
addServletback to summary
public ServletHolder addServlet(String className, String pathSpec)
addServletback to summary
public ServletHolder addServlet(Class<? extends Servlet> servlet, String pathSpec)
addServletback to summary
public void addServlet(ServletHolder servlet, String pathSpec)
addVirtualHostsback to summary
public void addVirtualHosts(String[] virtualHosts)
createConnectorback to summary
public String createConnector(boolean localhost) throws Exception

Create a port based connector. This methods adds a port connector to the server

Parameters
localhost:boolean

true if connector should use localhost, false for default host behavior.

Returns:String

A URL to access the server via the connector.

Exceptions
Exception:
on test failure
createLocalConnectorback to summary
public LocalConnector createLocalConnector()
getAttributeback to summary
public Object getAttribute(String name)
getAttributeNamesback to summary
public Enumeration<String> getAttributeNames()
getAttributesback to summary
public Attributes getAttributes()
getConnectorback to summary
public LocalConnector getConnector()
getContextback to summary
public ServletContextHandler getContext()
getContextPathback to summary
public String getContextPath()
getInitParameterback to summary
public String getInitParameter(String name)
getInitParameterNamesback to summary
public Enumeration<String> getInitParameterNames()
getInitParamsback to summary
public Map<String, String> getInitParams()
getResourceBaseback to summary
public Resource getResourceBase()
getResponsesback to summary
public String getResponses(String request) throws Exception
getResponsesback to summary
public String getResponses(String request, long idleFor, TimeUnit units) throws Exception
getResponsesback to summary
public ByteBuffer getResponses(ByteBuffer request) throws Exception
getResponsesback to summary
public ByteBuffer getResponses(ByteBuffer requestsBuffer, long idleFor, TimeUnit units) throws Exception
getServerback to summary
public Server getServer()
removeAttributeback to summary
public void removeAttribute(String name)
setAttributeback to summary
public void setAttribute(String name, Object value)
setContextPathback to summary
public void setContextPath(String contextPath)
setInitParameterback to summary
public String setInitParameter(String name, String value)
setResourceBaseback to summary
public void setResourceBase(Resource base)
setVirtualHostsback to summary
public void setVirtualHosts(List<String> vhosts)