Apache camel 在不中断路由的情况下存储文件正文

Apache camel 在不中断路由的情况下存储文件正文,apache-camel,Apache Camel,基本上我有如下的路线 from("servlet://test/?matchOnUriPrefix=true&servletName=testservlet") .log("Wire tap beginning") .streamCaching() .wireTap("seda:tap").copy(true).end() .log("End of wiretap")

基本上我有如下的路线

    from("servlet://test/?matchOnUriPrefix=true&servletName=testservlet")
            .log("Wire tap beginning")
            .streamCaching()
            .wireTap("seda:tap").copy(true).end()
            .log("End of wiretap")
            .log("request sent to provider ")
            .to("https://someservice.com" + "?bridgeEndpoint=true&throwExceptionOnFailure=false")
            .log("request sent to END");
上述路由将请求重定向到“”

“”请求是接受的“Post”呼叫 -文本/纯文本;字符集=UTF-8 -gzip文件体

我的意图是在不中断实际路线的情况下保存gzip主体。我使用“wiretap”的目的是实现同样的目的,即将请求主体保存在单独的线程中

当我发出请求时,我看不到“”在单独的线程中被调用,基本上执行方式如下

1.首先调用wiretap端点,在wiretap(“seda:tap”)处理完成后调用一次,然后 2.“被援引

添加seda代码:wiretap

    from("seda:tap")
            .unmarshal().gzip()
            .to("seda:storedata");

    from("seda:storedata")
            .process(new Processor() {
                @Override
                public void process(Exchange exchange) throws Exception {
                    //store the data
                    Message message = exchange.getIn();
                    String result=message.getBody(String.class);
                }});

如何做到这一点?

告诉seda不要等待回复

.wireTap("seda:tap?waitForTaskToComplete=Never").copy(true).end()

我尝试了这个方法,但没有成功:(即,..to(“+”?bridgeEndpoint=true&ThroweExceptionOnFailure=false)直到“seda:tap”完成后才执行。