首页 > 解决方案 > 如何从spring cloud stream kafka的ErrorMessage中的payload中获取failedMessage?

问题描述

我需要使用错误消息,并根据失败的原因重试或丢弃消息。为了测试这一点,我明确地从我的代码中抛出了一个运行时异常。我看到 ErrorMessage 中的 originalMessage 和标头为空。但是我将我的有效负载视为一个字节数组,并将我的自定义标头视为有效负载的 failedMessage 。我该如何检索它?我在 ErrorMessage 的有效负载中没有看到为 failedMessage 属性指定的 getter。

标签: javaspring-booterror-handlingapache-kafkaspring-cloud-stream

解决方案


是有效载荷的failedMessage一个属性,它是一个MessagingException. 投吧...

Message<?> failed = ((MessagingException) em.getPayload()).getFailedMessage();

推荐阅读