骆驼路线 - 如何 return body 响应为 xml

Camel Routes - How to return the body response as xml

首先,我是 Spring Boot 的新手。 我不确定是否可行,但我想 return 来自外部 url 的 xml 响应。

我有这个代码:

@GetMapping("/myPage")
public void myPage() {
    restConfiguration().host("localhost").port(8080);
    from("timer://runOnce?repeatCount=1&delay=0")
            .to("rest:get:/external-page")
            .to("stream:out");
}

myPage() 是 returning XML(没关系)。所以,现在我想 return 同样 XML 当我这样做时:

curl http://localhost/myPage

我不确定我是否必须使用 .to("stream:out"),但是 curl 是 return结果为空。

有人可以帮助我吗? 提前致谢。

我找到了解决方案,这是如何获得响应的。

CamelContext context = new DefaultCamelContext();
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            restConfiguration().host(sHost).port(iPort);
            from("direct:start")
                    .setHeader(Exchange.HTTP_METHOD,simple("GET"))
                    .to("rest:get:/external-page");
        }
    });

    context.start();

    ProducerTemplate template = context.createProducerTemplate();
    String headerValue = "application/xml";

    Map<String, Object> headers = new HashMap<String,Object>();
    headers.put("Content-Type", headerValue);

    Object result = template.requestBodyAndHeaders("direct:start", null, headers, String.class);
    Exchange exchange = new DefaultExchange(context);
    String response = ExchangeHelper.convertToType(exchange, String.class, result);
    context.stop();

    return response;