如何使用 jms:message-driven-channel-adapter 添加重试建议

how to add a retry advice with jms:message-driven-channel-adapter

我是 spring 集成的新手。我的要求是,如果 jms q 存在连接问题,那么它应该尝试连接 3 次,然后记录并退出进程。我做不到。它抛出一个错误,指出它需要 service:activator 的 ref 属性。但我不 have/know 参考 class 在这里提供。还有其他方法吗?

<int-jms:message-driven-channel-adapter id="msgIn" channel="toRoute" container="messageListenerContainer" />

<int:service-activator id="service" input-channel="toRoute" >
    <int:request-handler-advice-chain>
        <bean class="org.springframework.integration.handler.advice.RequestHandlerRetryAdvice">
  <property name="recoveryCallback">
                <bean class="org.springframework.integration.handler.advice.ErrorMessageSendingRecoverer">
                    <constructor-arg ref=“errorChannel" />
                </bean>
            </property>
   </bean>
    </request-handler-advice-chain>
</int:service-activator>

您似乎完全误解了框架的作用。

服务激活器在从 JMS 收到一条消息时得到一条消息(这意味着连接良好),并且需要 "something"(对 bean 或表达式的引用)作为调用的结果收到该消息。

重试建议是,如果由于某种原因无法处理消息,则重试调用该服务。它与消息的来源无关(在本例中为 JMS)。

不清楚您为什么要尝试使用 Spring 集成来做一些像测试 JMS 代理是否可用这样简单的事情。

如果您可以提供一些更大的背景信息,也许有人可以提供帮助。