【发布时间】:2019-02-08 15:22:01
【问题描述】:
我正在尝试在我的消息中添加自定义标头,因此每当发生异常并最终进入死信队列时,我都可以看到异常是什么。然而我所有的尝试都失败了。
- 使用 .setHeader()
- 在 outMessage 上设置标题
- 设置交易所的属性
不允许将异常设置为有效负载中的属性。
@Component
public class ProcessRoute extends RouteBuilder {
...
@Override
public void configure() throws Exception {
onException(Exception.class)
.log("Error for ${body}! Requeue")
.redeliveryDelay(2000)
.maximumRedeliveries(3)
.handled(true)
.setHeader("TEST", constant("TEST"))
.process(e -> {
e.getOut().setHeader("TEST", "TEST");
e.setProperty("TEST","TEST");
});
from(SOME_ROUTE)
.doSomeStuff()
.to(RABBITMQ);
}
...
}
RABBITMQ 字符串:
rabbitmq://foo
?exchangeType=topic
&addresses=localhost:1234
&routingKey=#
&autoDelete=false
&queue=bar
&autoAck=false
&deadLetterExchange=DLX
&deadLetterQueue=bar.dlq
&deadLetterExchangeType=direct
&deadLetterRoutingKey=#
&username=foo
&password=bar
死信队列上的结果消息:
【问题讨论】:
标签: rabbitmq apache-camel dead-letter