2016-09-29 1 views
0

Я хотел бы видеть XML, который представляется с моей POST запрос, который обрабатывается с помощью jax-rs и Apache CXF:Как захватить тело сообщения XML POST до его обработки CXF?

@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 для инкапсуляции (un) маршалинга для меня.

Я использую Tomcat 7, но надеялся найти способ сделать это на Java (отладка) и не регистрировать все HTTP-запросы в журналах Tomcat.

This не работал для меня, потому что контекст не вводился и оставался нулевым.

ответ

0

Я бы добавил серию do-nothing interceptors, по одному на каждой фазе, и рассмотрел сообщение в отладчике на каждом шаге на этом пути. I считаю, что фаза, которую вы ищете, это PRE_PROTOCOL, но я, похоже, помню, что определенная информация не всегда доступна, когда вы ожидаете ее появления.

Смежные вопросы