Class HttpRequestHandlingMessagingGateway
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,Lifecycle
,Phased
,SmartLifecycle
,ExpressionCapable
,OrderlyShutdownCapable
,IntegrationPattern
,NamedComponent
,IntegrationInboundManagement
,IntegrationManagement
,ManageableLifecycle
,ManageableSmartLifecycle
,TrackableComponent
,HttpRequestHandler
public class HttpRequestHandlingMessagingGateway extends HttpRequestHandlingEndpointSupport implements HttpRequestHandler
web.xml
where the servlet and bean both have the
same name. If the BaseHttpInboundEndpoint.isExpectReply()
property is set to true, a response can generated from a reply Message.
Otherwise, the gateway will play the role of a unidirectional Channel Adapter with a simple status-based response
(e.g. 200 OK).
The default supported request methods are GET and POST, but the list of values can be configured with the
RequestMapping.getMethods()
property.
The payload generated from a GET request (or HEAD or OPTIONS if supported) will
be a MultiValueMap
containing the parameter values.
For a request containing a body (e.g. a POST), the type of the payload is determined
by the BaseHttpInboundEndpoint.setRequestPayloadTypeClass(Class)
request payload type}.
If the HTTP request is a multipart and a "multipartResolver" bean has been defined in the context, then it will be
converted by the
MultipartAwareFormHttpMessageConverter
as long as the default
message converters have not
been overwritten (although providing a customized instance of the Multipart-aware converter is also an option).
By default a number of HttpMessageConverter
s are already configured. The list can be overridden by calling
the HttpRequestHandlingEndpointSupport.setMessageConverters(List)
method.
- Since:
- 2.0
- Author:
- Mark Fisher, Oleg Zhurakousky, Artem Bilan, Gary Russell
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
activeCount, JAXB_PRESENT, NON_READABLE_BODY_HTTP_METHODS, ROME_TOOLS_PRESENT
Fields inherited from class org.springframework.integration.gateway.MessagingGatewaySupport
messagingTemplate
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLock
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
-
Constructor Summary
Constructors Constructor Description HttpRequestHandlingMessagingGateway()
HttpRequestHandlingMessagingGateway(boolean expectReply)
-
Method Summary
Modifier and Type Method Description void
handleRequest(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.void
setConvertExceptions(boolean convertExceptions)
Flag to determine if conversion and writing out of message handling exceptions should be attempted (default false, in which case they will simply be re-thrown).Methods inherited from class org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
doHandleRequest, extractRequestBody, getMessageConverters, onInit, prepareRequest, prepareRequestEntity, setMergeWithDefaultConverters, setMessageConverters, setMultipartResolver, setStatusCodeIfNeeded, setupResponseAndConvertReply
Methods inherited from class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
afterShutdown, beforeShutdown, createEvaluationContext, evaluateHttpStatus, getComponentType, getCrossOrigin, getExtractReplyPayload, getHeaderExpressions, getHeaderMapper, getIntegrationPatternType, getPayloadExpression, getRequestMapping, getRequestPayloadType, getStatusCodeExpression, getValidator, isExpectReply, isReadable, resolveHttpStatusFromHeaders, setCrossOrigin, setExtractReplyPayload, setHeaderExpressions, setHeaderMapper, setPayloadExpression, setRequestMapping, setRequestPayloadType, setRequestPayloadTypeClass, setStatusCodeExpression, setStatusCodeExpressionString, setValidator, validate
Methods inherited from class org.springframework.integration.gateway.MessagingGatewaySupport
buildErrorMessage, buildSendTimer, destroy, doStart, doStop, getErrorChannel, getErrorMessageAttributes, getManagedName, getManagedType, getOverrides, getReplyChannel, getRequestChannel, isLoggingEnabled, receive, receive, receiveMessage, receiveMessage, registerMetricsCaptor, registerReplyMessageCorrelatorIfNecessary, send, sendAndReceive, sendAndReceiveMessage, sendAndReceiveMessageReactive, sendTimer, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setErrorOnTimeout, setLoggingEnabled, setManagedName, setManagedType, setReplyChannel, setReplyChannelName, setReplyMapper, setReplyTimeout, setRequestChannel, setRequestChannelName, setRequestMapper, setRequestTimeout, setShouldTrack
Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stop
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, 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.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
HttpRequestHandlingMessagingGateway
public HttpRequestHandlingMessagingGateway() -
HttpRequestHandlingMessagingGateway
public HttpRequestHandlingMessagingGateway(boolean expectReply)
-
-
Method Details
-
setConvertExceptions
public void setConvertExceptions(boolean convertExceptions)Flag to determine if conversion and writing out of message handling exceptions should be attempted (default false, in which case they will simply be re-thrown). If the flag is true and no message converter can convert the exception a new exception will be thrown.- Parameters:
convertExceptions
- the flag to set
-
handleRequest
public final void handleRequest(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse) throws IOExceptionHandles the HTTP request by generating a Message and sending it to the request channel. If this gateway's 'expectReply' property is true, it will also generate a response from the reply Message once received. That response will be written by theHttpMessageConverter
s.- Specified by:
handleRequest
in interfaceHttpRequestHandler
- Throws:
IOException
-