Spring JMS MessageListenerAdapter handleListenerException

时间:2017-01-25 19:52:53

标签: spring spring-jms

AbstractAdaptableMessageListener onMessage 的默认实现很简单:

onMessage(Message message) {
    try {
        onMessage(message, null);
    } catch(Throwable ex) {
        handleListenerException(ex);
    }
}

即使处理异常的尝试值得称道,但在大多数情况下, handleListenerException 中的实际处理还不够(它只记录有关异常的错误级别消息)。大多数真正的应用程序谁愿意使用 MessageListenerAdapter 并只是创建一个POJO来接收格式化的消息有更多细粒度的异常处理要求。

为什么这样做呢? onMessage 实现可以简单地用一个带有空Session参数的 onMessage 方法调用替换,并且没有try catch并且只是允许应用程序拦截(Java Enterprise拦截器或Spring Aspect) onMessage JMS方法并执行集成/一致的异常处理?在过去,我不得不将 MessageListenerAdapter 子类化为覆盖 onMessage handleListenerException 方法以自行处理异常。

0 个答案:

没有答案