Хранить необработанный XML-запрос/ответ Axis в сеансе (для использования в JSP)

Как, если это возможно, получить необработанный XML-запрос/ответ, который вызывается/извлекается Axis в моем приложении?

Я использую WSDL2Java, который включен в Axis, для создания заглушек Java.

РЕДАКТИРОВАТЬ:

В настоящее время у меня есть приложение, которое использует Axis для обработки удаленных вызовов API.

Одним из требований является «сохранение» всех XML-запросов/ответов от этих вызовов в сеансе, чтобы они были доступны в JSP (для целей отладки). Как я могу этого добиться?

Я попытался написать собственный обработчик, который extends BasicHandler но в этом обработчике я все еще не могу получить пару HttpServletRequest/HttpServletResponse из MessageContext


person ryanprayogo    schedule 27.04.2011    source источник


Ответы (3)


Через некоторое время поиск так же прост, как это:

//После вашего _call.invoke(...);

//Request
String request = _call.getMessageContext().getRequestMessage().getSOAPPart().getEnvelope().getBody().toString();

//Response
String response = _call.getMessageContext().getResponseMessage().getSOAPPart().getEnvelope().getBody().toString();

где _call — это org.apache.axis.client.Call

Затем вы можете сохранить его в файл, где вы хотите...

person carlosveucv    schedule 30.01.2013

Почему бы вам не написать обработчик мыла на стороне сервера, получить MessageContext, и я считаю, что есть способ получить оттуда полезную нагрузку. Если вы хотите передать его нисходящему потоку, поместите его в локальный поток. См., Например, обработчика здесь

person Aravind Yarram    schedule 27.04.2011
comment
Приложение использует API, предоставляемый сервером. Зачем мне писать обработчик на стороне сервера? - person ryanprayogo; 28.04.2011

В итоге я использую решение, описанное в этом

По сути, я использую его, чтобы получить HttpServletRequest, и оттуда я устанавливаю правильный элемент в сеансе.

person ryanprayogo    schedule 28.04.2011