在Spring JMS中禁用自动回复

时间:2018-03-09 17:12:25

标签: spring-boot spring-jms

根据Spring引用documentation,使用layoutIfNeeded()注释并具有非@JmsListener返回类型的方法将调用的结果封装在void中并发送或者在原始邮件的javax.jms.Message标头中指定的目标中,或者在侦听器上配置的默认目标中。

如果找不到目的地,则会抛出JMSReplyTo

有没有办法禁用自动回复的这种行为?

编辑

我正在使用InvalidDestinationException建议来记录执行结果,这就是为什么我需要在我的监听器上有一个返回类型。

1 个答案:

答案 0 :(得分:1)

如果方法具有返回类型,则从方法返回null将禁用回复处理。

您可以通过向方法添加@Header参数来检测replyTo的存在(或不存在)。

或者,如果没有标题,请添加@SendTo以及要使用的目的地。

修改

由于您使用建议来记录返回值,因此您只需从建议中返回null,而不是invocation.proceed()的结果。