我在下面的代码中遇到了一个奇怪的情况,它只是将请求路由到 Google 并返回响应。
它运行良好,但是当我激活注释为“//激活此行导致浏览器上的响应为空”的行 以打印从 http 端点(Google)返回的响应时,响应消失,浏览器上不显示任何内容。我认为它可能与只能使用一次的 http 响应的输入流有关,我在上下文中激活了流缓存但没有任何改变。
Apache Camel 版本是 2.11.0
任何建议都非常感谢,在此先感谢。
public class GoogleCaller {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("jetty:http://0.0.0.0:8081/myapp/")
.to("jetty://http://www.google.com?bridgeEndpoint=true&throwExceptionOnFailure=false")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
System.out.println("Response received from Google, is streamCaching = " + exchange.getContext().isStreamCaching());
System.out.println("----------------------------------------------IN MESSAGE--------------------------------------------------------------");
System.out.println(exchange.getIn().getBody(String.class));
System.out.println("----------------------------------------------OUT MESSAGE--------------------------------------------------------------");
//System.out.println(exchange.getOut().getBody(String.class)); //Activating this line causes empty response on browser
}
});
}
});
context.setTracing(true);
context.setStreamCaching(true);
context.start();
}
}