Class AbstractHttpRequestExecutingMessageHandler
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
- All Implemented Interfaces:
- org.reactivestreams.Subscriber<Message<?>>,- Aware,- BeanClassLoaderAware,- BeanFactoryAware,- BeanNameAware,- DisposableBean,- InitializingBean,- ApplicationContextAware,- Ordered,- ExpressionCapable,- Orderable,- MessageProducer,- HeaderPropagationAware,- IntegrationPattern,- NamedComponent,- IntegrationManagement,- TrackableComponent,- MessageHandler,- reactor.core.CoreSubscriber<Message<?>>
- Direct Known Subclasses:
- HttpRequestExecutingMessageHandler,- WebFluxRequestExecutingMessageHandler
public abstract class AbstractHttpRequestExecutingMessageHandler
extends AbstractReplyProducingMessageHandler
Base class for http outbound adapter/gateway.
- Since:
- 5.0
- Author:
- Mark Fisher, Oleg Zhurakousky, Gary Russell, Gunnar Hillert, Artem Bilan, Wallace Wadge, Shiliang Li, Florian Schöffl, Christian Tzolov
- 
Nested Class SummaryNested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandlerAbstractReplyProducingMessageHandler.RequestHandlerNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagementIntegrationManagement.ManagementOverrides
- 
Field SummaryFieldsFields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandlermessagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupportEXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagementMETER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.core.OrderedHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voiddoInit()protected ObjectevaluateTypeFromExpression(Message<?> requestMessage, Expression expression, String property) protected abstract Objectexchange(Object uri, HttpMethod httpMethod, HttpEntity<?> httpRequest, Object expectedResponseType, Message<?> requestMessage, Map<String, ?> uriVariables) Return a pattern type this component implements.protected ObjectgetReply(ResponseEntity<?> httpResponse) protected ObjecthandleRequestMessage(Message<?> requestMessage) Subclasses must implement this method to handle the request Message.booleanprotected HttpHeadersmapHeaders(Message<?> message) voidsetCharset(String charset) Specify the charset name to use for converting String-typed payloads to bytes.voidsetEncodingMode(DefaultUriBuilderFactory.EncodingMode encodingMode) Set the encoding mode to use.voidsetExpectedResponseType(Class<?> expectedResponseType) Specify the expected response type for the REST request.voidsetExpectedResponseTypeExpression(Expression expectedResponseTypeExpression) Specify theExpressionto determine the type for the expected response The returned value of the expression could be an instance ofClassorStringrepresenting a fully qualified class name.voidsetExpectReply(boolean expectReply) Specify whether a reply Message is expected.voidsetExtractPayload(boolean extractPayload) Specify whether the outbound message's payload should be extracted when preparing the request body.voidsetExtractResponseBody(boolean extractResponseBody) The flag to extract a body of theResponseEntityfor reply message payload.voidsetHeaderMapper(HeaderMapper<HttpHeaders> headerMapper) Set theHeaderMapperto use when mapping between HTTP headers and MessageHeaders.voidsetHttpMethod(HttpMethod httpMethod) Specify theHttpMethodfor requests.voidsetHttpMethodExpression(Expression httpMethodExpression) Specify the SpELExpressionto determineHttpMethodat runtime.voidsetTransferCookies(boolean transferCookies) Set to true if you wish 'Set-Cookie' headers in responses to be transferred as 'Cookie' headers in subsequent interactions for a message.voidsetTrustedSpel(boolean trustedSpel) Set to true if you trust the source of SpEL expressions used to evaluate URI variables.voidsetUriVariableExpressions(Map<String, Expression> uriVariableExpressions) Set the Map of URI variable expressions to evaluate against the outbound message when replacing the variable placeholders in a URI template.voidsetUriVariablesExpression(Expression uriVariablesExpression) Set theExpressionto evaluate against the outbound message; the expression must evaluate to a Map of URI variable expressions to evaluate against the outbound message when replacing the variable placeholders in a URI template.Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandlerdoInvokeAdvisedRequestHandler, getBeanClassLoader, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReplyMethods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandleraddNotPropagatedHeaders, 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.AbstractMessageHandlerhandleMessage, onComplete, onError, onNext, onSubscribe, setObservationConventionMethods inherited from class org.springframework.integration.handler.MessageHandlerSupportbuildSendTimer, destroy, getComponentType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods inherited from class org.springframework.integration.context.IntegrationObjectSupportafterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface reactor.core.CoreSubscribercurrentContextMethods inherited from interface org.springframework.integration.support.management.IntegrationManagementgetThisAsMethods inherited from interface org.springframework.integration.support.context.NamedComponentgetBeanName, getComponentName
- 
Field Details- 
uriFactory
 
- 
- 
Constructor Details- 
AbstractHttpRequestExecutingMessageHandler
 
- 
- 
Method Details- 
setEncodingModeSet 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.- Parameters:
- encodingMode- the mode to use for uri encoding
- Since:
- 5.3
 
- 
setHttpMethodExpressionSpecify the SpELExpressionto determineHttpMethodat runtime.- Parameters:
- httpMethodExpression- The method expression.
 
- 
setHttpMethodSpecify theHttpMethodfor requests. The default method isPOST.- Parameters:
- httpMethod- The method.
 
- 
setExtractPayloadpublic void setExtractPayload(boolean extractPayload) Specify whether the outbound message's payload should be extracted when preparing the request body. Otherwise, the Message instance itself is serialized. The default value istrue.- Parameters:
- extractPayload- true if the payload should be extracted.
 
- 
setCharsetSpecify the charset name to use for converting String-typed payloads to bytes. The default isUTF-8.- Parameters:
- charset- The charset.
 
- 
isExpectReplypublic boolean isExpectReply()- Returns:
- whether a reply Message is expected.
- See Also:
 
- 
setExpectReplypublic void setExpectReply(boolean expectReply) Specify whether a reply Message is expected. If not, this handler will simply return null for a successful response or throw an Exception for a non-successful response. The default is true.- Parameters:
- expectReply- true if a reply is expected.
 
- 
setExpectedResponseTypeSpecify the expected response type for the REST request. Otherwise, it is null and an emptyResponseEntityis returned from HTTP client. To take advantage of the HttpMessageConverters registered on this adapter, provide a different type).- Parameters:
- expectedResponseType- The expected type. Also see- setExpectedResponseTypeExpression(Expression)
 
- 
setExpectedResponseTypeExpressionSpecify theExpressionto determine the type for the expected response The returned value of the expression could be an instance ofClassorStringrepresenting a fully qualified class name.- Parameters:
- expectedResponseTypeExpression- The expected response type expression. Also see- setExpectedResponseType(java.lang.Class<?>)
 
- 
setHeaderMapperSet theHeaderMapperto use when mapping between HTTP headers and MessageHeaders.- Parameters:
- headerMapper- The header mapper.
 
- 
setUriVariableExpressionsSet the Map of URI variable expressions to evaluate against the outbound message when replacing the variable placeholders in a URI template.- Parameters:
- uriVariableExpressions- The URI variable expressions.
 
- 
setUriVariablesExpressionSet theExpressionto evaluate against the outbound message; the expression must evaluate to a Map of URI variable expressions to evaluate against the outbound message when replacing the variable placeholders in a URI template.- Parameters:
- uriVariablesExpression- The URI variables expression.
 
- 
setTransferCookiespublic void setTransferCookies(boolean transferCookies) Set to true if you wish 'Set-Cookie' headers in responses to be transferred as 'Cookie' headers in subsequent interactions for a message. Defaults to false.- Parameters:
- transferCookies- the transferCookies to set.
 
- 
setTrustedSpelpublic void setTrustedSpel(boolean trustedSpel) Set to true if you trust the source of SpEL expressions used to evaluate URI variables. Default is false, which means aSimpleEvaluationContextis used for evaluating such expressions, which restricts the use of some SpEL capabilities.- Parameters:
- trustedSpel- true to trust.
- Since:
- 4.3.15.
 
- 
setExtractResponseBodypublic void setExtractResponseBody(boolean extractResponseBody) The flag to extract a body of theResponseEntityfor reply message payload. Defaults to true.- Parameters:
- extractResponseBody- produce a reply message with a whole- ResponseEntityor just its body.
- Since:
- 5.5
 
- 
getIntegrationPatternTypeDescription copied from interface:IntegrationPatternReturn a pattern type this component implements.- Specified by:
- getIntegrationPatternTypein interface- IntegrationPattern
- Overrides:
- getIntegrationPatternTypein class- AbstractReplyProducingMessageHandler
- Returns:
- the IntegrationPatternTypethis component implements.
 
- 
doInitprotected void doInit()- Overrides:
- doInitin class- AbstractReplyProducingMessageHandler
 
- 
handleRequestMessageDescription copied from class:AbstractReplyProducingMessageHandlerSubclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.- Specified by:
- handleRequestMessagein class- AbstractReplyProducingMessageHandler
- Parameters:
- requestMessage- The request message.
- Returns:
- The result of handling the message, or null.
 
- 
exchange@Nullable protected abstract Object exchange(Object uri, HttpMethod httpMethod, HttpEntity<?> httpRequest, Object expectedResponseType, Message<?> requestMessage, Map<String, ?> uriVariables) 
- 
getReply
- 
mapHeaders
- 
evaluateTypeFromExpression
 
-