java - 从Camel消息体获取HttpServletRequest和HttpServletResponse

标签 java apache-camel jetty

我正在尝试使用 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/

相关文章:

java - 我可以将 URI 连接到 Camel 代理类的每个方法吗?

apache-camel - 使用 Apache Camel 请求回复和分散收集

java - 嵌入式 Jetty 通过表单例份验证提供静态内容

java - 在没有主类的情况下启动应用程序上下文

java - 将 LinkedHashMap<Object,String> 从一个 Activity 传递到另一个 Activity

java - 使用特定于路由的 DLQ 配置 Java/Camel/AMQ

java - 如何以独立于比例的方式检查 BigDecimal 是否在 Set 或 Map 中?

java - 如何让 log4j 与 jetty 一起工作?

java - 为什么 Array 和 Integer 构造函数不明确

java - 带 namespace 的 XPath - 查询未给出结果