@Contract(threading=IMMUTABLE_CONDITIONAL) public class HttpService extends Object
HttpService
is a server side HTTP protocol handler based on
the classic (blocking) I/O model.
HttpService
relies on HttpProcessor
to generate mandatory
protocol headers for all outgoing messages and apply common, cross-cutting
message transformations to all incoming and outgoing messages, whereas
individual HttpRequestHandler
s are expected to implement
application specific content generation and processing.
HttpService
uses HttpRequestHandlerMapper
to map
matching request handler for a particular request URI of an incoming HTTP
request.
HttpService
can use optional HttpExpectationVerifier
to ensure that incoming requests meet server's expectations.
Modifier and Type | Class and Description |
---|---|
private static class |
HttpService.HttpRequestHandlerResolverAdapter
Deprecated.
|
Modifier and Type | Field and Description |
---|---|
private ConnectionReuseStrategy |
connStrategy |
private HttpExpectationVerifier |
expectationVerifier |
private HttpRequestHandlerMapper |
handlerMapper |
private HttpParams |
params
TODO: make all variables final in the next major version
|
private HttpProcessor |
processor |
private HttpResponseFactory |
responseFactory |
Modifier and Type | Method and Description |
---|---|
private boolean |
canResponseHaveBody(HttpRequest request,
HttpResponse response) |
protected void |
doService(HttpRequest request,
HttpResponse response,
HttpContext context)
The default implementation of this method attempts to resolve an
HttpRequestHandler for the request URI of the given request
and, if found, executes its
HttpRequestHandler.handle(HttpRequest, HttpResponse, HttpContext)
method. |
HttpParams |
getParams()
Deprecated.
(4.3) no longer used.
|
protected void |
handleException(HttpException ex,
HttpResponse response)
Handles the given exception and generates an HTTP response to be sent
back to the client to inform about the exceptional condition encountered
in the course of the request processing.
|
void |
handleRequest(HttpServerConnection conn,
HttpContext context)
Handles receives one HTTP request over the given connection within the
given execution context and sends a response back to the client.
|
void |
setConnReuseStrategy(ConnectionReuseStrategy connStrategy)
Deprecated.
(4.1) set
ConnectionReuseStrategy using constructor |
void |
setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
Deprecated.
(4.1) set
HttpExpectationVerifier using constructor |
void |
setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
Deprecated.
(4.1) set
HttpRequestHandlerResolver using constructor |
void |
setHttpProcessor(HttpProcessor processor)
Deprecated.
(4.1) set
HttpProcessor using constructor |
void |
setParams(HttpParams params)
Deprecated.
(4.1) set
HttpResponseFactory using constructor |
void |
setResponseFactory(HttpResponseFactory responseFactory)
Deprecated.
(4.1) set
HttpResponseFactory using constructor |
private volatile HttpParams params
private volatile HttpProcessor processor
private volatile HttpRequestHandlerMapper handlerMapper
private volatile ConnectionReuseStrategy connStrategy
private volatile HttpResponseFactory responseFactory
private volatile HttpExpectationVerifier expectationVerifier
@Deprecated public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerResolver handlerResolver, HttpExpectationVerifier expectationVerifier, HttpParams params)
HttpService(HttpProcessor, ConnectionReuseStrategy,
HttpResponseFactory, HttpRequestHandlerMapper, HttpExpectationVerifier)
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factoryhandlerResolver
- the handler resolver. May be null.expectationVerifier
- the expectation verifier. May be null.params
- the HTTP parameters@Deprecated public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerResolver handlerResolver, HttpParams params)
HttpService(HttpProcessor, ConnectionReuseStrategy,
HttpResponseFactory, HttpRequestHandlerMapper)
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factoryhandlerResolver
- the handler resolver. May be null.params
- the HTTP parameters@Deprecated public HttpService(HttpProcessor proc, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory)
HttpService(HttpProcessor,
ConnectionReuseStrategy, HttpResponseFactory, HttpRequestHandlerResolver, HttpParams)
proc
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factorypublic HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerMapper handlerMapper, HttpExpectationVerifier expectationVerifier)
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategy. If null
DefaultConnectionReuseStrategy.INSTANCE
will be used.responseFactory
- the response factory. If null
DefaultHttpResponseFactory.INSTANCE
will be used.handlerMapper
- the handler mapper. May be null.expectationVerifier
- the expectation verifier. May be null.public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerMapper handlerMapper)
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategy. If null
DefaultConnectionReuseStrategy.INSTANCE
will be used.responseFactory
- the response factory. If null
DefaultHttpResponseFactory.INSTANCE
will be used.handlerMapper
- the handler mapper. May be null.public HttpService(HttpProcessor processor, HttpRequestHandlerMapper handlerMapper)
processor
- the processor to use on requests and responseshandlerMapper
- the handler mapper. May be null.@Deprecated public void setHttpProcessor(HttpProcessor processor)
HttpProcessor
using constructor@Deprecated public void setConnReuseStrategy(ConnectionReuseStrategy connStrategy)
ConnectionReuseStrategy
using constructor@Deprecated public void setResponseFactory(HttpResponseFactory responseFactory)
HttpResponseFactory
using constructor@Deprecated public void setParams(HttpParams params)
HttpResponseFactory
using constructor@Deprecated public void setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
HttpRequestHandlerResolver
using constructor@Deprecated public void setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
HttpExpectationVerifier
using constructor@Deprecated public HttpParams getParams()
public void handleRequest(HttpServerConnection conn, HttpContext context) throws IOException, HttpException
conn
- the active connection to the clientcontext
- the actual execution context.IOException
- in case of an I/O error.HttpException
- in case of HTTP protocol violation or a processing
problem.private boolean canResponseHaveBody(HttpRequest request, HttpResponse response)
protected void handleException(HttpException ex, HttpResponse response)
ex
- the exception.response
- the HTTP response.protected void doService(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException
HttpRequestHandler
for the request URI of the given request
and, if found, executes its
HttpRequestHandler.handle(HttpRequest, HttpResponse, HttpContext)
method.
Super-classes can override this method in order to provide a custom implementation of the request processing logic.
request
- the HTTP request.response
- the HTTP response.context
- the execution context.IOException
- in case of an I/O error.HttpException
- in case of HTTP protocol violation or a processing
problem.WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses