我正在尝试使用 Camel Jetty 或 Camel HTTP 组件向 HTTP 端点发送请求。我想知道是否可以将请求和响应转换为 HttpServletRequest 和 HttpServletResponse 对象。
我有以下路线:
from("direct://processing/callEndpoint")
.to("jetty:http://www.google.com")
.to("bean:processHttpResponse")
我使用 Guice 进行依赖注入(inject),“bean:processHttpResponse”如下:
public class HttpResponseBean {
public void processResponse(Exchange exchange) {
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
HttpServletResponse response = exchange.getOut().getBody(HttpServletResponse.class);
}
}
请求和响应对象都为空。调试/检查 Exchange 时,In Message 是字节数组 (byte[]),Out Message 为空。不知道如何继续..
最佳答案
请参阅Camel Jetty转到消费者示例。
尝试像这样调用你的 bean。
from("jetty:http://localhost:{{port}}/myapp/myservice").bean(HttpResponseBean,"processResponse");
public class HttpResponseBean {
public void processResponse(Exchange exchange) {
// we have access to the HttpServletRequest here and we can grab it if we need it
HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
}
}
关于java - 从Camel消息体获取HttpServletRequest和HttpServletResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557776/