【问题标题】:Camel Dead Letter channel骆驼死信频道
【发布时间】:2014-06-29 08:51:50
【问题描述】:

我有一条路线:

from("restlet://RestletBean/{id}?restletMethod=GET")
   .setHeader(Exchange.HTTP_METHOD, constant("GET"))
   .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}"))
   .to("http://dummyHost")

当我没有提供适当的输入时(在这种情况下为id,它被用作to 路由中的URI 参数)。 to 路由会用错误页面回复我。这没有发生。相反,即使在使用死信通道错误处理程序处理后,也会出现空白页:

from("restlet://RestletBean/{id}?restletMethod=GET").
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
    .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}"))
    .to("http://dummyHost")
    .errorHandler("http://x.y.z.com?id={header.id}");

【问题讨论】:

    标签: java apache-camel dead-letter


    【解决方案1】:

    死信通道不影响响应。来自Camel doc

    Dead Letter Channel 将使用 1 秒的延迟最多重新发送 6 次,如果交换失败,它将被记录为 ERROR 级别。

    顺便说一句,您没有在错误处理程序中正确定义死信通道。应该是:

    errorHandler(deadLetterChannel("..."))
    

    您是否尝试将throwExceptionOnFailure 参数设置为true?来自Camel doc

    在远程服务器响应失败的情况下禁用抛出 HttpOperationFailedException 的选项。这使您可以获取所有响应,而不管 HTTP 状态代码如何。

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2015-05-05
      相关资源
      最近更新 更多