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<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.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<?>>
- Direct Known Subclasses:
HttpRequestExecutingMessageHandler
public abstract class AbstractHttpRequestExecutingMessageHandler
extends org.springframework.integration.handler.AbstractReplyProducingMessageHandler
Base class for http outbound adapter/gateway.
- Since:
- 5.0
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler.RequestHandler
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.springframework.web.util.DefaultUriBuilderFactory
Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplate
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
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractHttpRequestExecutingMessageHandler
(org.springframework.expression.Expression uriExpression) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doInit()
protected Object
evaluateTypeFromExpression
(org.springframework.messaging.Message<?> requestMessage, org.springframework.expression.Expression expression, String property) protected abstract Object
exchange
(Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, Map<String, ?> uriVariables) org.springframework.integration.IntegrationPatternType
protected Object
getReply
(org.springframework.http.ResponseEntity<?> httpResponse) protected Object
handleRequestMessage
(org.springframework.messaging.Message<?> requestMessage) boolean
protected org.springframework.http.HttpHeaders
mapHeaders
(org.springframework.messaging.Message<?> message) void
setCharset
(String charset) Specify the charset name to use for converting String-typed payloads to bytes.void
setEncodingMode
(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode) Set the encoding mode to use.void
setExpectedResponseType
(Class<?> expectedResponseType) Specify the expected response type for the REST request.void
setExpectedResponseTypeExpression
(org.springframework.expression.Expression expectedResponseTypeExpression) void
setExpectReply
(boolean expectReply) Specify whether a reply Message is expected.void
setExtractPayload
(boolean extractPayload) Specify whether the outbound message's payload should be extracted when preparing the request body.void
setExtractResponseBody
(boolean extractResponseBody) The flag to extract a body of theResponseEntity
for reply message payload.void
setHeaderMapper
(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper) Set theHeaderMapper
to use when mapping between HTTP headers and MessageHeaders.void
setHttpMethod
(org.springframework.http.HttpMethod httpMethod) Specify theHttpMethod
for requests.void
setHttpMethodExpression
(org.springframework.expression.Expression httpMethodExpression) Specify the SpELExpression
to determineHttpMethod
at runtime.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.void
setTrustedSpel
(boolean trustedSpel) Set to true if you trust the source of SpEL expressions used to evaluate URI variables.void
setUriVariableExpressions
(Map<String, org.springframework.expression.Expression> uriVariableExpressions) Set the Map of URI variable expressions to evaluate against the outbound message when replacing the variable placeholders in a URI template.void
setUriVariablesExpression
(org.springframework.expression.Expression uriVariablesExpression) Set theExpression
to 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.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
Methods 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, updateNotPropagatedHeaders
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getComponentType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, 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 reactor.core.CoreSubscriber
currentContext
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Field Details
-
uriFactory
protected final org.springframework.web.util.DefaultUriBuilderFactory uriFactory
-
-
Constructor Details
-
AbstractHttpRequestExecutingMessageHandler
public AbstractHttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression)
-
-
Method Details
-
setEncodingMode
public void setEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode) Set the encoding mode to use. By default, this is set toDefaultUriBuilderFactory.EncodingMode.TEMPLATE_AND_VALUES
. For more complicated scenarios consider configuring anUriTemplateHandler
on an externally providedRestTemplate
.- Parameters:
encodingMode
- the mode to use for uri encoding- Since:
- 5.3
-
setHttpMethodExpression
public void setHttpMethodExpression(org.springframework.expression.Expression httpMethodExpression) Specify the SpELExpression
to determineHttpMethod
at runtime.- Parameters:
httpMethodExpression
- The method expression.
-
setHttpMethod
public void setHttpMethod(org.springframework.http.HttpMethod httpMethod) Specify theHttpMethod
for requests. The default method isPOST
.- Parameters:
httpMethod
- The method.
-
setExtractPayload
public 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.
-
setCharset
Specify the charset name to use for converting String-typed payloads to bytes. The default isUTF-8
.- Parameters:
charset
- The charset.
-
isExpectReply
public boolean isExpectReply()- Returns:
- whether a reply Message is expected.
- See Also:
-
setExpectReply
public 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.
-
setExpectedResponseType
Specify the expected response type for the REST request. Otherwise, it is null and an emptyResponseEntity
is returned from HTTP client. To take advantage of the HttpMessageConverters registered on this adapter, provide a different type.- Parameters:
expectedResponseType
- The expected type. Also seesetExpectedResponseTypeExpression(Expression)
-
setExpectedResponseTypeExpression
public void setExpectedResponseTypeExpression(org.springframework.expression.Expression expectedResponseTypeExpression) Specify theExpression
to determine the type for the expected response The returned value of the expression could be an instance ofClass
orString
representing a fully qualified class name.- Parameters:
expectedResponseTypeExpression
- The expected response type expression. Also seesetExpectedResponseType(java.lang.Class<?>)
-
setHeaderMapper
public void setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper) Set theHeaderMapper
to use when mapping between HTTP headers and MessageHeaders.- Parameters:
headerMapper
- The header mapper.
-
setUriVariableExpressions
public void setUriVariableExpressions(Map<String, org.springframework.expression.Expression> uriVariableExpressions) Set 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.
-
setUriVariablesExpression
public void setUriVariablesExpression(org.springframework.expression.Expression uriVariablesExpression) Set theExpression
to 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.
-
setTransferCookies
public 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.
-
setTrustedSpel
public 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 aSimpleEvaluationContext
is used for evaluating such expressions, which restricts the use of some SpEL capabilities.- Parameters:
trustedSpel
- true to trust.- Since:
- 4.3.15.
-
setExtractResponseBody
public void setExtractResponseBody(boolean extractResponseBody) The flag to extract a body of theResponseEntity
for reply message payload. Defaults to true.- Parameters:
extractResponseBody
- produce a reply message with a wholeResponseEntity
or just its body.- Since:
- 5.5
-
getIntegrationPatternType
public org.springframework.integration.IntegrationPatternType getIntegrationPatternType()- Specified by:
getIntegrationPatternType
in interfaceorg.springframework.integration.IntegrationPattern
- Overrides:
getIntegrationPatternType
in classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
doInit
protected void doInit()- Overrides:
doInit
in classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
handleRequestMessage
@Nullable protected Object handleRequestMessage(org.springframework.messaging.Message<?> requestMessage) - Specified by:
handleRequestMessage
in classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
exchange
-
getReply
-
mapHeaders
protected org.springframework.http.HttpHeaders mapHeaders(org.springframework.messaging.Message<?> message) -
evaluateTypeFromExpression
-