Class ErrorMessagePublisher
java.lang.Object
org.springframework.integration.core.ErrorMessagePublisher
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
- Direct Known Subclasses:
ErrorMessageSendingRecoverer
,MessagePublishingErrorHandler
public class ErrorMessagePublisher
extends java.lang.Object
implements org.springframework.beans.factory.BeanFactoryAware
The component which can be used as general purpose of errors publishing.
Can be called or extended in any error handling or retry scenarios.
An ErrorMessageStrategy
can be used to provide customization for the target
ErrorMessage
based on the AttributeAccessor
(or the message and/or
throwable when using the other publish()
methods).
- Since:
- 4.3.10
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.Log
logger
protected MessagingTemplate
messagingTemplate
-
Constructor Summary
Constructors Constructor Description ErrorMessagePublisher()
-
Method Summary
Modifier and Type Method Description protected java.lang.Throwable
determinePayload(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
Build aThrowable payload
for futureErrorMessage
.org.springframework.messaging.MessageChannel
getChannel()
protected org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel>
getChannelResolver()
ErrorMessageStrategy
getErrorMessageStrategy()
protected MessagingTemplate
getMessagingTemplate()
protected java.lang.Throwable
payloadWhenNull(org.springframework.core.AttributeAccessor context)
Build aThrowable payload
based on the provided context for futureErrorMessage
when there is originalThrowable
.void
publish(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)
Publish an error message for the supplied throwable and context.void
publish(org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
Publish an error message for the supplied message and throwable.void
publish(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)
Publish an error message for the supplied message and throwable.void
publish(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.MessagingException exception)
Publish an error message for the supplied exception.void
publish(org.springframework.messaging.MessagingException exception)
Publish an error message for the supplied exception.void
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
void
setChannel(org.springframework.messaging.MessageChannel channel)
void
setChannelName(java.lang.String channelName)
void
setChannelResolver(org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> channelResolver)
void
setErrorMessageStrategy(ErrorMessageStrategy errorMessageStrategy)
void
setSendTimeout(long sendTimeout)
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger -
messagingTemplate
-
-
Constructor Details
-
ErrorMessagePublisher
public ErrorMessagePublisher()
-
-
Method Details
-
setErrorMessageStrategy
-
setChannel
public final void setChannel(org.springframework.messaging.MessageChannel channel) -
setChannelName
public void setChannelName(java.lang.String channelName) -
getErrorMessageStrategy
-
getChannel
public org.springframework.messaging.MessageChannel getChannel() -
setSendTimeout
public final void setSendTimeout(long sendTimeout) -
setChannelResolver
public final void setChannelResolver(org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> channelResolver) -
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)- Specified by:
setBeanFactory
in interfaceorg.springframework.beans.factory.BeanFactoryAware
-
getMessagingTemplate
-
getChannelResolver
@Nullable protected org.springframework.messaging.core.DestinationResolver<org.springframework.messaging.MessageChannel> getChannelResolver() -
publish
public void publish(org.springframework.messaging.MessagingException exception)Publish an error message for the supplied exception.- Parameters:
exception
- the exception.
-
publish
public void publish(org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)Publish an error message for the supplied message and throwable. If the throwable is already aMessagingException
containing the message in itsfailedMessage
property, usepublish(MessagingException)
instead.- Parameters:
failedMessage
- the message.throwable
- the throwable.
-
publish
public void publish(org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.MessagingException exception)Publish an error message for the supplied exception.- Parameters:
inputMessage
- the message that started the subflow.exception
- the exception.
-
publish
public void publish(@Nullable org.springframework.messaging.Message<?> inputMessage, org.springframework.messaging.Message<?> failedMessage, java.lang.Throwable throwable)Publish an error message for the supplied message and throwable. If the throwable is already aMessagingException
containing the message in itsfailedMessage
property, usepublish(MessagingException)
instead.- Parameters:
inputMessage
- the message that started the subflow.failedMessage
- the message.throwable
- the throwable.
-
publish
public void publish(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)Publish an error message for the supplied throwable and context. TheerrorMessageStrategy
is used to build aErrorMessage
to publish.- Parameters:
throwable
- the throwable. May be null.context
- the context forErrorMessage
properties.
-
determinePayload
protected java.lang.Throwable determinePayload(java.lang.Throwable throwable, org.springframework.core.AttributeAccessor context)Build aThrowable payload
for futureErrorMessage
.- Parameters:
throwable
- the error to determine anErrorMessage
payload. Can be null.context
- the context for error.- Returns:
- the throwable for the
ErrorMessage
payload - See Also:
ErrorMessageUtils
-
payloadWhenNull
protected java.lang.Throwable payloadWhenNull(org.springframework.core.AttributeAccessor context)Build aThrowable payload
based on the provided context for futureErrorMessage
when there is originalThrowable
.- Parameters:
context
- theAttributeAccessor
to use for exception properties.- Returns:
- the
Throwable
for anErrorMessage
payload. - See Also:
ErrorMessageUtils
-