首页 > 解决方案 > 相当于 NETTY-HTTP 中来自 HTTP 的 copyHeaders

问题描述

我有一个兔子请求-回复队列,我exchangePattern.InOut在生产者上使用骆驼,其中消费者设置如下:

 from("rabbitmq:<args>")
    .to("netty-http:<args>")
    .process(exchange -> {
        Exchange result = exchange.getMessage().getExchange();
        Exception e = result.getException();
        if (e == null) {
            out.setBody(result.getMessage().getBody());
        } else {
            out.setBody("error retrieving data: " + e.getMessage());
        }        
    });

我看到的问题是Camel标头没有与NETTY-HTTP 组件上的响应一起传播,因为它们与使用该选项的HTTP 组件一起传播。copyHeaders=true因此,发生的事情是生产者正在超时等待响应。headerFilterStrategy=defaultHeaderFilterStrategy我看到如何通过使用然后nettyHttpBinding扩展将标头传播回响应DefaultNettyHttpBinding,但我想知道是否有更好的方法。我觉得这应该更容易,因为它是HTTP 组件的默认设置,但我似乎找不到它。任何想法?

谢谢!

标签: apache-camel

解决方案


推荐阅读