|
Spring Integration | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.integration.context.IntegrationObjectSupport org.springframework.integration.endpoint.AbstractEndpoint org.springframework.integration.gateway.MessagingGatewaySupport org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
public abstract class HttpRequestHandlingEndpointSupport
Base class for HTTP request handling endpoints.
By default GET and POST requests are accepted, but the 'supportedMethods' property may be set to include others or limit the options (e.g. POST only). A GET request will generate a payload containing its 'parameterMap' while a POST request will be converted to a Message payload according to the registeredHttpMessageConverter
s. Several are
registered by default, but the list can be explicitly set via setMessageConverters(List)
.
To customize the mapping of request headers to the MessageHeaders, provide a reference to a HeaderMapper
implementation to the setHeaderMapper(HeaderMapper)
method.
The behavior is "request/reply" by default. Pass false
to the constructor to force send-only as opposed
to sendAndReceive. Send-only means that as soon as the Message is created and passed to the
request channel
, a response will be
generated. Subclasses determine how that response is generated (e.g. simple status response or rendering a View).
In a request-reply scenario, the reply Message's payload will be extracted prior to generating a response by default.
To have the entire serialized Message available for the response, switch the extractReplyPayload
value to
false
.
Field Summary |
---|
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport |
---|
logger |
Constructor Summary | |
---|---|
HttpRequestHandlingEndpointSupport()
|
|
HttpRequestHandlingEndpointSupport(boolean expectReply)
|
Method Summary | |
---|---|
int |
afterShutdown()
Called after normal shutdown of schedulers, executors etc, and after the shutdown delay has elapsed, but before any forced shutdown of any remaining active scheduler/executor threads.Can optionally return the number of active messages still in process. |
int |
beforeShutdown()
Called before shutdown begins. |
protected org.springframework.expression.spel.support.StandardEvaluationContext |
createEvaluationContext()
|
protected Message<?> |
doHandleRequest(javax.servlet.http.HttpServletRequest servletRequest,
javax.servlet.http.HttpServletResponse servletResponse)
Handles the HTTP request by generating a Message and sending it to the request channel. |
protected void |
doStart()
Subclasses must implement this method with the start behavior. |
java.lang.String |
getComponentType()
Subclasses may implement this method to provide component type information. |
protected java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> |
getMessageConverters()
|
protected boolean |
isExpectReply()
|
protected boolean |
isShuttingDown()
|
protected void |
onInit()
Locates the MultipartResolver bean based on the default name defined by the
DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME constant if available. |
void |
setExtractReplyPayload(boolean extractReplyPayload)
Specify whether only the reply Message's payload should be passed in the response. |
void |
setHeaderExpressions(java.util.Map<java.lang.String,org.springframework.expression.Expression> headerExpressions)
Specifies a Map of SpEL expressions to evaluate in order to generate the Message headers. |
void |
setHeaderMapper(HeaderMapper<org.springframework.http.HttpHeaders> headerMapper)
Set the HeaderMapper to use when mapping between HTTP headers and MessageHeaders. |
void |
setMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
Set the message body converters to use. |
void |
setMultipartResolver(org.springframework.web.multipart.MultipartResolver multipartResolver)
Specify the MultipartResolver to use when checking requests. |
void |
setPath(java.lang.String path)
Set the path template for which this endpoint expects requests. |
void |
setPayloadExpression(org.springframework.expression.Expression payloadExpression)
Specifies a SpEL expression to evaluate in order to generate the Message payload. |
void |
setRequestPayloadType(java.lang.Class<?> requestPayloadType)
Specify the type of payload to be generated when the inbound HTTP request content is read by the HttpMessageConverter s. |
void |
setSupportedMethodNames(java.lang.String... supportedMethods)
Specify the supported request method names for this gateway. |
void |
setSupportedMethods(org.springframework.http.HttpMethod... supportedMethods)
Specify the supported request methods for this gateway. |
protected java.lang.Object |
setupResponseAndConvertReply(javax.servlet.http.HttpServletResponse servletResponse,
Message<?> replyMessage)
Deprecated. As of release 2.2, please use setupResponseAndConvertReply(ServletServerHttpResponse, Message) instead. |
protected java.lang.Object |
setupResponseAndConvertReply(org.springframework.http.server.ServletServerHttpResponse response,
Message<?> replyMessage)
Converts the reply message to the appropriate HTTP reply object and sets up the ServletServerHttpResponse . |
Methods inherited from class org.springframework.integration.gateway.MessagingGatewaySupport |
---|
doStop, receive, send, sendAndReceive, sendAndReceiveMessage, setErrorChannel, setReplyChannel, setReplyMapper, setReplyTimeout, setRequestChannel, setRequestMapper, setRequestTimeout, setShouldTrack |
Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint |
---|
getPhase, isAutoStartup, isRunning, setAutoStartup, setPhase, setTaskScheduler, start, stop, stop |
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport |
---|
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.springframework.integration.context.NamedComponent |
---|
getComponentName |
Constructor Detail |
---|
public HttpRequestHandlingEndpointSupport()
public HttpRequestHandlingEndpointSupport(boolean expectReply)
Method Detail |
---|
protected boolean isExpectReply()
public void setPath(java.lang.String path)
public void setPayloadExpression(org.springframework.expression.Expression payloadExpression)
#pathVariables
and
#queryParameters
variables if present. Those variables' values are Maps.
public void setHeaderExpressions(java.util.Map<java.lang.String,org.springframework.expression.Expression> headerExpressions)
#pathVariables
and
#queryParameters
variables if present. Those variables' values are Maps.
public void setMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
protected java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> getMessageConverters()
public void setHeaderMapper(HeaderMapper<org.springframework.http.HttpHeaders> headerMapper)
HeaderMapper
to use when mapping between HTTP headers and MessageHeaders.
public void setSupportedMethodNames(java.lang.String... supportedMethods)
public void setSupportedMethods(org.springframework.http.HttpMethod... supportedMethods)
public void setRequestPayloadType(java.lang.Class<?> requestPayloadType)
HttpMessageConverter
s. By default this value is null which means at runtime any "text" Content-Type will
result in String while all others default to byte[].class
.
public void setExtractReplyPayload(boolean extractReplyPayload)
public void setMultipartResolver(org.springframework.web.multipart.MultipartResolver multipartResolver)
MultipartResolver
to use when checking requests. If no resolver is provided, the
"multipartResolver" bean in the context will be used as a fallback. If that is not available either, this
endpoint will not support multipart requests.
protected boolean isShuttingDown()
public java.lang.String getComponentType()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class MessagingGatewaySupport
protected void onInit() throws java.lang.Exception
MultipartResolver
bean based on the default name defined by the
DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME
constant if available.
onInit
in class MessagingGatewaySupport
java.lang.Exception
protected void doStart()
AbstractEndpoint
AbstractEndpoint.lifecycleLock
.
doStart
in class MessagingGatewaySupport
protected final Message<?> doHandleRequest(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse) throws java.io.IOException
java.io.IOException
protected final java.lang.Object setupResponseAndConvertReply(org.springframework.http.server.ServletServerHttpResponse response, Message<?> replyMessage)
ServletServerHttpResponse
.
response
- The ServletServerHttpResponse.replyMessage
- The reply message.
extractReplyPayload
) otherwise the
message.@Deprecated protected final java.lang.Object setupResponseAndConvertReply(javax.servlet.http.HttpServletResponse servletResponse, Message<?> replyMessage)
setupResponseAndConvertReply(ServletServerHttpResponse, Message)
instead.
protected org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()
public int beforeShutdown()
OrderlyShutdownCapable
beforeShutdown
in interface OrderlyShutdownCapable
public int afterShutdown()
OrderlyShutdownCapable
afterShutdown
in interface OrderlyShutdownCapable
|
Spring Integration | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |