Apache camel Camel异步调用获取响应
我正在使用以下代码使用apache camel API对Web服务进行异步调用: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
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,这就是你要问的吗?如果还需要什么,请告诉我。