Class HttpRequestExecutingMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler
- All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.ApplicationContextAware,org.springframework.core.Ordered,org.springframework.integration.context.ComponentSourceAware,org.springframework.integration.context.ExpressionCapable,org.springframework.integration.context.Orderable,org.springframework.integration.core.MessageProducer,org.springframework.integration.handler.HeaderPropagationAware,org.springframework.integration.IntegrationPattern,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.IntegrationManagement,org.springframework.integration.support.management.TrackableComponent,org.springframework.messaging.MessageHandler,reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>
A
MessageHandler
implementation that executes HTTP requests by delegating
to a RestTemplate instance. If the 'expectReply' flag is set to true (the default)
then a reply Message will be generated from the HTTP response. If that response contains
a body, it will be used as the reply Message's payload. Otherwise the reply Message's
payload will contain the response status as an instance of the
HttpStatus enum.
When there is a response body, the HttpStatus enum
instance will instead be
copied to the MessageHeaders of the reply. In both cases, the response headers will
be mapped to the reply Message's headers by this handler's
HeaderMapper instance.- Since:
- 2.0
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler.RequestHandlerNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
uriFactoryFields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionCreate a handler that will send requests to the provided URI.HttpRequestExecutingMessageHandler(String uri, org.springframework.web.client.RestTemplate restTemplate) Create a handler that will send requests to the provided URI using a provided RestTemplate.Create a handler that will send requests to the provided URI.HttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression) Create a handler that will send requests to the provided URI Expression.HttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression, org.springframework.web.client.RestTemplate restTemplate) 4 Create a handler that will send requests to the provided URI using a provided RestTemplate. -
Method Summary
Modifier and TypeMethodDescriptionprotected Objectexchange(Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, Map<String, ?> uriVariables) voidsetEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode) Set the encoding mode to use.voidsetErrorHandler(org.springframework.web.client.ResponseErrorHandler errorHandler) Set theResponseErrorHandlerfor the underlyingRestTemplate.voidsetMessageConverters(List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters) Set a list ofHttpMessageConverters to be used by the underlyingRestTemplate.voidsetRequestFactory(org.springframework.http.client.ClientHttpRequestFactory requestFactory) Set theClientHttpRequestFactoryfor the underlyingRestTemplate.Methods inherited from class org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
doInit, evaluateTypeFromExpression, getIntegrationPatternType, getReply, handleRequestMessage, isExpectReply, mapHeaders, setCharset, setExpectedResponseType, setExpectedResponseTypeExpression, setExpectReply, setExtractPayload, setExtractResponseBody, setHeaderMapper, setHttpMethod, setHttpMethodExpression, setTransferCookies, setTrustedSpel, setUriVariableExpressions, setUriVariablesExpressionMethods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReplyMethods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, setupMessageProcessor, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeadersMethods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConventionMethods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface reactor.core.CoreSubscriber
currentContextMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAsMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
HttpRequestExecutingMessageHandler
Create a handler that will send requests to the provided URI.- Parameters:
uri- The URI.
-
HttpRequestExecutingMessageHandler
Create a handler that will send requests to the provided URI.- Parameters:
uri- The URI.
-
HttpRequestExecutingMessageHandler
public HttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression) Create a handler that will send requests to the provided URI Expression.- Parameters:
uriExpression- The URI expression.
-
HttpRequestExecutingMessageHandler
public HttpRequestExecutingMessageHandler(String uri, @Nullable org.springframework.web.client.RestTemplate restTemplate) Create a handler that will send requests to the provided URI using a provided RestTemplate.- Parameters:
uri- The URI.restTemplate- The rest template.
-
HttpRequestExecutingMessageHandler
public HttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression, @Nullable org.springframework.web.client.RestTemplate restTemplate) 4 Create a handler that will send requests to the provided URI using a provided RestTemplate.- Parameters:
uriExpression- A SpEL Expression that can be resolved against the message object andBeanFactory.restTemplate- The rest template.
-
-
Method Details
-
getComponentType
- Specified by:
getComponentTypein interfaceorg.springframework.integration.support.context.NamedComponent- Overrides:
getComponentTypein classorg.springframework.integration.handler.MessageHandlerSupport
-
setErrorHandler
public void setErrorHandler(org.springframework.web.client.ResponseErrorHandler errorHandler) Set theResponseErrorHandlerfor the underlyingRestTemplate.- Parameters:
errorHandler- The error handler.- See Also:
-
RestTemplate.setErrorHandler(ResponseErrorHandler)
-
setMessageConverters
public void setMessageConverters(List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters) Set a list ofHttpMessageConverters to be used by the underlyingRestTemplate. Converters configured via this method will override the default converters.- Parameters:
messageConverters- The message converters.- See Also:
-
RestTemplate.setMessageConverters(java.util.List)
-
setRequestFactory
public void setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory requestFactory) Set theClientHttpRequestFactoryfor the underlyingRestTemplate.- Parameters:
requestFactory- The request factory.- See Also:
-
InterceptingHttpAccessor.setRequestFactory(ClientHttpRequestFactory)
-
setEncodingMode
public void setEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode) Description copied from class:AbstractHttpRequestExecutingMessageHandlerSet the encoding mode to use. By default, this is set toDefaultUriBuilderFactory.EncodingMode.TEMPLATE_AND_VALUES. For more complicated scenarios consider configuring anUriTemplateHandleron an externally providedRestTemplate.- Overrides:
setEncodingModein classAbstractHttpRequestExecutingMessageHandler- Parameters:
encodingMode- the mode to use for uri encoding
-
exchange
@Nullable protected Object exchange(Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, @Nullable Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, @Nullable Map<String, ?> uriVariables) - Specified by:
exchangein classAbstractHttpRequestExecutingMessageHandler
-