There is a property on AbstractMessageListenerContainer
:
<bean id="listener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="errorHandler" ref="someHandler"/>
<property name="destinationName" value="someQueue"/>
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
Where someHandler
is a bean implementing ErrorHandler
:
@Service
public class SomeHandler implements ErrorHandler {
@Override
public void handleError(Throwable t) {
log.error("Error in listener", t);
}
}
However note that according to the documentation:
The default behavior of this message listener [...] will log any such exception at the error level. [...] However, if error handling is necessary, then any implementation of the ErrorHandler strategy may be provided to the setErrorHandler(ErrorHandler) method.
Check out your logs, maybe the exception is already logged?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…