如何在CXF处理之前捕获XML POST消息主体?

如何在CXF处理之前捕获XML POST消息主体?

问题描述:

我希望看到一个与我POST请求时使用jax-rsApache CXF处理提交的XML:如何在CXF处理之前捕获XML POST消息主体?

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

我打电话使用SpringRestTemplate服务:

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

所以无论是RestTemplate CXF封装了准备和解析请求的样板功能。不过,我希望看到RestTemplate如何将对象编组为XML或CXF如何解组,但最好我希望能够看到包括标头的整个HTTP请求。

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

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

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

我会添加一系列什么也不做的interceptors,每个阶段一个,然后在调试器的每一步中检查消息。我认为你正在寻找的阶段是PRE_PROTOCOL,但我似乎记得,某些信息不一定可用,当你所期望的。