将确认发送到Rabbitmq服务器取决于转换器和侦听器

将确认发送到Rabbitmq服务器取决于转换器和侦听器,第1张

将确认发送到Rabbitmq服务器取决于转换器和侦听器

请阅读参考手册。

该行为(主要)由所控制

ErrorHandler

引发

MessageConversionException
-容器为大多数异常重新排队消息,但某些异常被认为是致命的。通常,如果无法转换邮件,则重新传递它是没有意义的。

所有这些都在名为“ 异常处理”的部分(令人惊讶地?)中清楚地说明了

从版本1.3.2开始,默认的ErrorHandler现在是ConditionalRejectingErrorHandler,它将拒绝(而不是重新排队)由于不可恢复的错误而失败的消息:

osamqp … MessageConversionException

osmessaging … MessageConversionException

osmessaging … MethodArgumentNotValidException

osmessaging … MethodArgumentTypeMismatchException

java.lang.NoSuchMethodException

java.lang.ClassCastException

使用MessageConverter转换传入的消息有效负载时,可以引发第一个。如果映射到@RabbitListener方法时需要其他转换,则转换服务可能会抛出第二个。如果在侦听器中使用了验证(例如@Valid),并且验证失败,则可能引发第三个事件。如果将入站消息转换为对目标方法不正确的类型,则可能会抛出第四个错误。例如,将该参数声明为Message,但收到Message。

在版本1.6.3中添加了第五和第六。

您可以根据

ErrorHandler
需要自定义。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5153038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存