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
-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.web.util.DefaultUriBuilderFactoryuriFactoryFields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger -
Constructor Summary
Constructors Constructor Description AbstractHttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression) -
Method Summary
Modifier and Type Method Description protected voiddoInit()protected java.lang.ObjectevaluateTypeFromExpression(org.springframework.messaging.Message<?> requestMessage, org.springframework.expression.Expression expression, java.lang.String property)protected abstract java.lang.Objectexchange(java.lang.Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, java.lang.Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, java.util.Map<java.lang.String,?> uriVariables)org.springframework.integration.IntegrationPatternTypegetIntegrationPatternType()protected java.lang.ObjectgetReply(org.springframework.http.ResponseEntity<?> httpResponse)protected java.lang.ObjecthandleRequestMessage(org.springframework.messaging.Message<?> requestMessage)booleanisExpectReply()protected org.springframework.http.HttpHeadersmapHeaders(org.springframework.messaging.Message<?> message)voidsetCharset(java.lang.String charset)Specify the charset name to use for converting String-typed payloads to bytes.voidsetEncodeUri(boolean encodeUri)Deprecated.since 5.3 in favor ofsetEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode)voidsetEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode)Set the encoding mode to use.voidsetExpectedResponseType(java.lang.Class<?> expectedResponseType)Specify the expected response type for the REST request otherwise the default response type isResponseEntityand will be returned as a payload of the reply Message.voidsetExpectedResponseTypeExpression(org.springframework.expression.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.voidsetHeaderMapper(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper)Set theHeaderMapperto use when mapping between HTTP headers and MessageHeaders.voidsetHttpMethod(org.springframework.http.HttpMethod httpMethod)Specify theHttpMethodfor requests.voidsetHttpMethodExpression(org.springframework.expression.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(java.util.Map<java.lang.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.voidsetUriVariablesExpression(org.springframework.expression.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.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, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeadersMethods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribeMethods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getComponentType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods 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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
uriFactory
protected final org.springframework.web.util.DefaultUriBuilderFactory uriFactory
-
-
Constructor Details
-
AbstractHttpRequestExecutingMessageHandler
public AbstractHttpRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression)
-
-
Method Details
-
setEncodeUri
@Deprecated public void setEncodeUri(boolean encodeUri)Deprecated.since 5.3 in favor ofsetEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode)Specify whether the real URI should be encoded afteruriVariablesexpanding and before send request viaRestTemplate. The default value istrue.- Parameters:
encodeUri- true if the URI should be encoded.- See Also:
UriComponentsBuilder
-
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 to configure anUriTemplateHandleron 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 SpELExpressionto determineHttpMethodat runtime.- Parameters:
httpMethodExpression- The method expression.
-
setHttpMethod
public void setHttpMethod(org.springframework.http.HttpMethod httpMethod)Specify theHttpMethodfor 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
public void setCharset(java.lang.String charset)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(boolean)
-
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
public void setExpectedResponseType(java.lang.Class<?> expectedResponseType)Specify the expected response type for the REST request otherwise the default response type isResponseEntityand will be returned as a payload of the reply Message. 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 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 seesetExpectedResponseType(java.lang.Class<?>)
-
setHeaderMapper
public void setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper)Set theHeaderMapperto use when mapping between HTTP headers and MessageHeaders.- Parameters:
headerMapper- The header mapper.
-
setUriVariableExpressions
public void setUriVariableExpressions(java.util.Map<java.lang.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 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.
-
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.- 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 aSimpleEvaluationContextis used for evaluating such expressions, which restricts the use of some SpEL capabilities.- Parameters:
trustedSpel- true to trust.- Since:
- 4.3.15.
-
getIntegrationPatternType
public org.springframework.integration.IntegrationPatternType getIntegrationPatternType()- Specified by:
getIntegrationPatternTypein interfaceorg.springframework.integration.IntegrationPattern- Overrides:
getIntegrationPatternTypein classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
doInit
protected void doInit()- Overrides:
doInitin classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
handleRequestMessage
@Nullable protected java.lang.Object handleRequestMessage(org.springframework.messaging.Message<?> requestMessage)- Specified by:
handleRequestMessagein classorg.springframework.integration.handler.AbstractReplyProducingMessageHandler
-
exchange
@Nullable protected abstract java.lang.Object exchange(java.lang.Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, java.lang.Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, java.util.Map<java.lang.String,?> uriVariables) -
getReply
protected java.lang.Object getReply(org.springframework.http.ResponseEntity<?> httpResponse) -
mapHeaders
protected org.springframework.http.HttpHeaders mapHeaders(org.springframework.messaging.Message<?> message) -
evaluateTypeFromExpression
@Nullable protected java.lang.Object evaluateTypeFromExpression(org.springframework.messaging.Message<?> requestMessage, @Nullable org.springframework.expression.Expression expression, java.lang.String property)
-