Я очень новичок в веб-сервисе.axis2 Ответ с ответа на запрос
У меня есть один веб-сервис, подверженный воздействию, поэтому клиент потребляет его, но из-за важности обслуживания мы хотим, чтобы запрос SOAP журнала и ответ SOAP протекали IN и OUT.
Я использую Axis2-1.6.2 Это то, что я пытался до сих пор, я написал один пользовательский обработчик и класс модуля
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LogHandler extends AbstractHandler implements Handler {
private static final Log log = LogFactory.getLog(LogHandler.class);
private String name;
public String getName() {
System.out.println("LogHandler.getName()");
return name;
}
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
log.info(msgContext.getEnvelope().toString());
System.out.println("LogHandler.invoke()");
return InvocationResponse.CONTINUE;
}
public void revoke(MessageContext msgContext) {
System.out.println("LogHandler.revoke()");
log.info(msgContext.getEnvelope().toString());
}
public void setName(String name) {
System.out.println("LogHandler.setName()");
this.name = name;
}
}
Я также написал модуль для выше Handler
public class LoggingModule implements Module {
//implemented methods
}
Из обработчика выше я могу выполнить входной запрос SOAP и исходящий SOAP-ответ.
Но проблема в том, что я получаю много запросов за раз, поэтому, если я пишу простой запрос и ответ, то при просмотре журналов я не могу определить, чей ответ это.
Журналы в общем написать
Request1 SOAP
Request2 SOAP
Response1 SOAP
Request3 SOAP
Request4 SOAP
Response2 SOAP
invoke(MessageContext msgContext)
Этот метод получения вызывается в то время как приходит запрос и ответ выходит. Есть ли что-нибудь, что я могу получить, запросить SOAP, когда время ответа вызвано.
Итак, я хочу какое-то решение, где я могу консолидировать Request SOAP в Response SOAP, так что 1 Log завершен Request-Response.
Если какой-либо орган может предложить какое-то хорошее решение, это будет полезно.
Какой способ зарегистрировать обработчик в IN только или только? можете ли вы указать некоторую ссылку. Кроме того, если я зарегистрируюсь в IN-OUT, я не получу запрос в ответ? – Jayesh
Спасибо Ратха. это работает. – Jayesh
Можете ли вы объяснить свое «Но здесь вы увидите проблему, которая, если ваш запрос не удался, вы не сможете его захватить в своем потоке. Этот журнал может пропустить». линий. – Jayesh