@ComponentProfile(summary="Allows you to commit the HTTP response immediately rather than at the end of a PoolingWorkflow", tag="service,http,https,jetty") public class ShortCutJettyResponse extends ServiceImp
JettyPoolingWorkflowInterceptor
behaviour in a PoolingWorkflow
.
Normally, the response is not committed until the workflow is complete. If you have a workflow bound to HTTP that takes a
significant amount of time then this can cause arbitrary timeouts within firewalls and proxies. If the client sends a
Expect: 102-Processing
header, then the adapter will automatically send a 102 response every 20 seconds or so until the
workflow has finished. This service allows you to shortcut that behaviour and commit a response before the underlying workflow is
complete. You will still need to use StandardResponseProducer
prior to using this service.
While not strictly enforced, you should consider returning a 202 ACCEPTED
rather than a 200 OK
if you are going
to send the response before the end of the workflow. This would be the more "correct" behaviour as per the HTTP specifications.
In the adapter configuration file this class is aliased as jetty-commit-response which is the preferred alternative to the fully qualified classname when building your configuration.
log
Constructor and Description |
---|
ShortCutJettyResponse() |
Modifier and Type | Method and Description |
---|---|
protected void |
closeService() |
void |
doService(AdaptrisMessage msg)
Apply the service to the message.
|
protected void |
initService() |
void |
prepare()
Prepare for initialisation.
|
changeState, close, continueOnFailure, createName, createQualifier, getContinueOnFail, getIsTrackingEndpoint, getUniqueId, init, isBranching, isTrackingEndpoint, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, setContinueOnFail, setIsTrackingEndpoint, setUniqueId, start, stop
public void doService(AdaptrisMessage msg) throws ServiceException
Service
Apply the service to the message.
msg
- the AdaptrisMessage
to processServiceException
- wrapping any underlying Exception
spublic void prepare() throws CoreException
ComponentLifecycleExtension
CoreException
protected void initService() throws CoreException
initService
in class ServiceImp
CoreException
protected void closeService()
closeService
in class ServiceImp