Apache Camel - 将xml参数发送到http端点不起作用

时间:2015-07-05 18:34:03

标签: xml http apache-camel apache-servicemix

以下是我的路线

    from("activemq:queue:request")
    .routeId("urlRoute")
    .setExchangePattern(ExchangePattern.InOut)
    .convertBodyTo(String.class)
    .to("http://mydomain:8080/my-bin/myProgram.pgm?xmlData=<head><user>username</user><pass>password</pass><data>Some data</data></head>")
    .process(new Processor() {
       public void process(Exchange e) throws Exception {
         log.info("Response : "+MessageHelper.extractBodyAsString(e.getIn()));
       }
     })
    .to("activemq:queue:response")

上述路由工作正常,因为端点是用http端点中的xml数据进行硬编码的....如果我用$ {body}替换xml数据,它的工作方式如下所示。

.to("http://mydomain:8080/my-bin/myProgram.pgm?xmlData=${body}")

我做得对吗?或者必须定义一些数据类型?请帮帮我..

1 个答案:

答案 0 :(得分:2)

快速解决方案:

将其更改为:

.recipientList(simple("http://mydomain:8080/my-bin/myProgram.pgm?xmlData=${body}))

好的解决方案:

将myProgram.pgm更改为接受POST发送的XML数据