【问题标题】:How to capture XML POST message body before it is processed by CXF?如何在 CXF 处理 XML POST 消息体之前捕获它?
【发布时间】:2017-02-08 07:33:45
【问题描述】:

我想查看使用jax-rsApache CXF 处理的POST 请求提交的XML:

@POST
@Path("entity/register")
@Consumes(MediaType.APPLICATION_XML)
public Response registerEntity(Entity entity ) { ... }

我使用 Spring RestTemplate 调用服务:

String postURI = "...";
Entity entity = new Entity(...);
restTemplate.postForLocation(postURI, entMap);

因此,RestTemplate 和 CXF 都封装了准备和解析请求的样板函数。但是,我想看看 RestTemplate 如何将对象编组为 XML 或 CXF 如何解组它,但最好我希望能够看到包括标头在内的整个 HTTP 请求。

我想要这样做的原因是我可以模仿其他客户端的请求,例如PythonChrome Poster 等。更具体地说,我想编写一个 Python 脚本来发布相同的 XML格式为相同的 REST 服务,我没有 Java 框架来为我封装(取消)编组。

我正在使用Tomcat 7,但希望找到一种方法在 Java 中进行(调试),并且不在 Tomcat 日志中记录所有 HTTP 请求。

This 对我不起作用,因为上下文没有被注入并且保持为空。

【问题讨论】:

    标签: java rest cxf resttemplate


    【解决方案1】:

    我会在每个阶段添加一系列无操作interceptors,并在沿途的每一步检查调试器中的消息。我相信您正在寻找的阶段是PRE_PROTOCOL,但我似乎记得某些信息并不一定如您所期望的那样可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多