Запросы и ответы клиента на ось axis2
Я хотел бы зарегистрировать все запросы/ответы, сделанные клиентом axis2.
Я попытался создать файл client-config.wsdd
в качестве описания в http://code.google.com/support/bin/answer.py?hl=en&answer=15137, но без успеха (я не получаю файл журнала).
Запросы выполняются через https, и я не уверен, имеет ли это значение. Я попробовал
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
и
<transport name="https" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
без успеха.
Ответы
Ответ 1
Для ведения журналов на стороне Axis2 для сообщений SOAP просто используйте следующие аргументы JVM во время работы автономного клиента или включите эти аргументы VM в свой Appln. Начало сервера script,
JAVA_OPTS=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog -Dorg.apache.commons.logging.simplelog.showdatetime=true -Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug -Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug
C:\java% JAVA_OPTS% YourClientAppln.java
Cheers,
Sankar
Ответ 2
Если вы добавите приведенные ниже строки в файл log4j.properties, вам не нужно будет передавать параметры виртуальной машины или JVM.
#Axis2
log4j.appender.AxisLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.AxisLogFile.File=${catalina.base}/logs/Axis-client.log
log4j.appender.AxisLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.AxisLogFile.layout.ConversionPattern=%d{ISO8601} [%X{UUID}] %5p %t %c{1} - %m%n
log4j.logger.httpclient.wire=DEBUG,AxisLogFile
Ответ 3
Я знаю это немного многословно, но вот как мы его решили:
SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
OMElement requestElement = request.getOMElement(RegisterIntegrationAgent.MY_QNAME, factory);
LOGGER.debug(requestElement);
Ответ 4
Я обычно просто регистрирую тело сообщения SOAP, переданного в мой класс сервиса.
public OMElement myOperation(OMElement request) throws AxisFault {
log.debug("Request: {}", request);
..
log.debug("Response: {}", response);
return response
}
Низкая технология, но работает для меня: -)
Ответ 5
-Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog -Dorg.apache.commons.logging.simplelog.showdatetime = true -Dorg.apache.commons.logging.simplelog. log.httpclient.wire = debug -Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient = debug
Это сработало