如何在CXF处理之前捕获XML POST消息主体?
问题描述:
我希望看到一个与我POST
请求时使用jax-rs
和Apache CXF
处理提交的XML:如何在CXF处理之前捕获XML POST消息主体?
@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请求。
我想这样做的原因是我可以在其他客户端模仿请求,如Python
,Chrome Poster
等。更具体地说,我想编写一个Python脚本,它将发布相同的XML格式相同的REST服务,并且我没有Java框架来为我封装(联合)编组。
我正在使用Tomcat 7
,但希望找到一种方法在Java(调试)中执行此操作,并且不记录Tomcat日志中的所有HTTP请求。
This对我不起作用,因为上下文没有被注入并保持为空。
答
我会添加一系列什么也不做的interceptors,每个阶段一个,然后在调试器的每一步中检查消息。我认为你正在寻找的阶段是PRE_PROTOCOL
,但我似乎记得,某些信息不一定可用,当你所期望的。