Apache camel Camel异步调用获取响应

Apache camel Camel异步调用获取响应,apache-camel,Apache Camel,我正在使用以下代码使用apache camel API对Web服务进行异步调用: Exchange exchange = new DefaultExchange(context); Message msg = exchange.getIn(); msg.setBody(requestStr); msg.setHeader("content-type", "application/json"); template.asyncCallback("direct

我正在使用以下代码使用apache camel API对Web服务进行异步调用:

    Exchange exchange = new DefaultExchange(context);
    Message msg = exchange.getIn();
    msg.setBody(requestStr);
    msg.setHeader("content-type", "application/json");

    template.asyncCallback("direct:invokeAPI", exchange, new Synchronization() {
        @Override
        public void onComplete(Exchange exchange) {
            System.out.println("Success");
            System.out.println(exchange);
            System.out.println(exchange.getIn());
            System.out.println(exchange.getIn().getHeaders());
            System.out.println(exchange.getIn().getBody());
            System.out.println("================================");
            System.out.println(exchange.getOut());
            System.out.println(exchange.getOut().getHeaders());
            System.out.println(exchange.getOut().getBody());
            System.out.println("================================");
            Exception ex = exchange.getException();
            System.out.println(ex.getMessage());
        }

        @Override
        public void onFailure(Exchange exchange) {
            System.out.println("Failure");
        }
    });
现在,我的Web服务因异常而失败,并返回json响应:

Response-Code: 500
Content-Type: application/json
Headers: {Content-Type=[application/json], Date=[Fri, 03 Aug 2018 13:18:19 GMT]}
Payload: {"errorMessage":"Unable to process","errorCode":"500"}
现在,我如何在
template.asyncCallback
方法中捕获此信息。 在我上面的代码中,它将执行
onComplete
回调方法并打印以下消息:

Success
Exchange[ID-xxxx-0-2]
Message[ID-xxxx-0-1]
{breadcrumbId=ID-xxxx-0-1, content-type=application/json}
{
"source":"PDF"
}
================================
Message[]
{}
null
================================

我正在尝试获取状态500代码和包含错误信息的响应负载,但无法打印任何内容。您能否帮助我获取错误信息的正确方法。

您在REST调用中使用的组件是什么?我看不到这里的全部路线。@Namphibian,我正在使用Spring和ApacheCamelAPI,这就是你要问的吗?如果还需要什么,请告诉我。