|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.http.nio.protocol.HttpAsyncService
@Immutable public class HttpAsyncService
HttpAsyncService is a fully asynchronous HTTP server side protocol
handler based on the non-blocking (NIO) I/O model.
HttpAsyncServerProtocolHandler translates individual events fired
through the NHttpServerEventHandler interface into logically related
HTTP message exchanges.
HttpAsyncExpectationVerifier, if provided, and then
HttpAsyncRequestHandlerResolver is used to resolve the request URI
to a particular HttpAsyncRequestHandler intended to handle
the request with the given URI. The protocol handler uses the selected
HttpAsyncRequestHandler instance to process the incoming request
and to generate an outgoing response.
HttpAsyncService 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 HttpAsyncRequestHandlers are expected
to implement application specific content generation and processing.
Individual HttpAsyncRequestHandlers do not have to submit a response
immediately. They can defer transmission of an HTTP response back to
the client without blocking the I/O thread by delegating the process of
request handling to another service or a worker thread. HTTP response can
be submitted as a later a later point of time once response content becomes
available.
The following parameters can be used to customize the behavior of this
class:
| Constructor Summary | |
|---|---|
HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpParams params)
Creates an instance of HttpAsyncServerProtocolHandler. |
|
HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpResponseFactory responseFactory,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpAsyncExpectationVerifier expectationVerifier,
HttpParams params)
Creates an instance of HttpAsyncServerProtocolHandler. |
|
| Method Summary | |
|---|---|
void |
closed(NHttpServerConnection conn)
Triggered when the connection is closed. |
void |
connected(NHttpServerConnection conn)
Triggered when a new incoming connection is created. |
void |
endOfInput(NHttpServerConnection conn)
Triggered when the connection is closed by the opposite end point (half-closed). |
void |
exception(NHttpServerConnection conn,
Exception cause)
Triggered if an error occurs during the HTTP exchange. |
protected HttpAsyncResponseProducer |
handleException(Exception ex,
HttpContext context)
|
void |
inputReady(NHttpServerConnection conn,
ContentDecoder decoder)
Triggered when the underlying channel is ready for reading a new portion of the request entity through the corresponding content decoder. |
protected void |
log(Exception ex)
This method can be used to log I/O exception thrown while closing Closeable
objects (such as HttpConnection). |
void |
outputReady(NHttpServerConnection conn,
ContentEncoder encoder)
Triggered when the underlying channel is ready for writing a next portion of the response entity through the corresponding content encoder. |
void |
requestReceived(NHttpServerConnection conn)
Triggered when a new HTTP request is received. |
void |
responseReady(NHttpServerConnection conn)
Triggered when the connection is ready to accept a new HTTP response. |
void |
timeout(NHttpServerConnection conn)
Triggered when no input is detected on this connection over the maximum period of inactivity. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpResponseFactory responseFactory,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpAsyncExpectationVerifier expectationVerifier,
HttpParams params)
httpProcessor - HTTP protocol processor (required).connStrategy - Connection re-use strategy (required).responseFactory - HTTP response factory (required).handlerResolver - Request handler resolver.expectationVerifier - Request expectation verifier (optional).params - HTTP parameters (required).
public HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpParams params)
httpProcessor - HTTP protocol processor (required).connStrategy - Connection re-use strategy (required).handlerResolver - Request handler resolver.params - HTTP parameters (required).| Method Detail |
|---|
public void connected(NHttpServerConnection conn)
NHttpServerEventHandler
connected in interface NHttpServerEventHandlerconn - new incoming connection HTTP connection.public void closed(NHttpServerConnection conn)
NHttpServerEventHandler
closed in interface NHttpServerEventHandlerconn - closed HTTP connection.
public void exception(NHttpServerConnection conn,
Exception cause)
NHttpServerEventHandler
exception in interface NHttpServerEventHandlerconn - HTTP connection that caused an I/O errorcause - exception
public void requestReceived(NHttpServerConnection conn)
throws IOException,
HttpException
NHttpServerEventHandlerNHttpServerEventHandler.inputReady(NHttpServerConnection, ContentDecoder) calls
to transfer the request content.
requestReceived in interface NHttpServerEventHandlerconn - HTTP connection that contains a new HTTP request
IOException
HttpExceptionNHttpServerConnection
public void inputReady(NHttpServerConnection conn,
ContentDecoder decoder)
throws IOException,
HttpException
NHttpServerEventHandlerIOControl interface.
inputReady in interface NHttpServerEventHandlerconn - HTTP connection that can produce a new portion of the
incoming request content.decoder - The content decoder to use to read content.
IOException
HttpExceptionNHttpServerConnection,
ContentDecoder,
IOControl
public void responseReady(NHttpServerConnection conn)
throws IOException,
HttpException
NHttpServerEventHandler
responseReady in interface NHttpServerEventHandlerconn - HTTP connection that contains an HTTP response
IOException
HttpExceptionNHttpServerConnection
public void outputReady(NHttpServerConnection conn,
ContentEncoder encoder)
throws IOException
NHttpServerEventHandlerIOControl interface.
outputReady in interface NHttpServerEventHandlerconn - HTTP connection that can accommodate a new portion
of the outgoing response content.encoder - The content encoder to use to write content.
IOExceptionNHttpServerConnection,
ContentEncoder,
IOControl
public void endOfInput(NHttpServerConnection conn)
throws IOException
NHttpServerEventHandler
endOfInput in interface NHttpServerEventHandlerconn - half-closed HTTP connection.
IOException
public void timeout(NHttpServerConnection conn)
throws IOException
NHttpServerEventHandler
timeout in interface NHttpServerEventHandlerconn - HTTP connection that caused timeout condition.
IOExceptionprotected void log(Exception ex)
Closeable
objects (such as HttpConnection).
ex - I/O exception thrown by Closeable.close()
protected HttpAsyncResponseProducer handleException(Exception ex,
HttpContext context)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||