|
2
|
| Martin Carpella · 技术社区 · 16 年前 |
|
|
1
3
您表示正在使用sessionacknowledgeMode 2,即session.client_acknowledge。以下声明直接取自 AbstractMessageListenerContainer Javadocs 以下内容:
因此,问题不在于SpringDMLC,而在于它能够在抛出运行时异常时调用session.recover()。您是否可以在侦听器的onMessage()方法中使用try/catch自己调用session.recover()来处理运行时异常? 更新:您对样板文件代码有很好的了解。它被洒在许多地方,并请求重构。你不可能抽象出这样的代码吗?这是一个常见的解决方案。用包含具有适当处理的try/catch的方法创建一个抽象父类应该可以做到这一点。然后扩展父类以实现所需的任意多个自定义处理器。甚至可以使用Spring应用程序上下文以适当的方式将处理器连接在一起。 我从未遇到过向应用程序添加特定于Spring的代码的问题,因为它可以在任何地方运行。当我开始使用弹簧时,这对我很重要。它不特定于任何一个应用服务器或servlet容器,所以它不像我将com.ibm或com.oracle导入到源代码中那样用Spring将自己编码到一个角落。事实上,我在一个MOM中使用了SpringJMSAPI,并切换到了另一个MOM,除了JMS连接工厂定义之外,没有任何更改。 |
|
|
Beto Neto · ActiveMQ,丢弃未使用的消息 8 年前 |