Axis2クライアントからのすべてのリクエスト/レスポンスをログに記録したいと思います。 http://code.google.com/support/bin/answer.py?hl=ja&answer=15137 の説明としてclient-config.wsdd
というファイルを作成しようとしましたが、成功しませんでした(Iログファイルを取得しないでください)。
リクエストはhttps経由で行われ、重要かどうかはわかりません。私は試した
<transport name="http" pivot="Java:org.Apache.axis.transport.http.HTTPSender"/>
そして
<transport name="https" pivot="Java:org.Apache.axis.transport.http.HTTPSender"/>
成功なし。
SOAPメッセージのAxis2クライアント側ロギングの場合、スタンドアロンクライアントの実行中に次のJVM引数を使用するか、これをVM argsをApplnに含めます。サーバーの起動脚本、
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
乾杯、サンカール
以下の行をlog4j.propertiesファイルに追加する場合、VMまたは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
私はそれが少し冗長であることを知っていますが、これが私たちがそれを解決した方法です:
SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
OMElement requestElement = request.getOMElement(RegisterIntegrationAgent.MY_QNAME, factory);
LOGGER.debug(requestElement);
私は通常、サービスクラスに渡されたSOAPメッセージの本文を記録するだけです。
public OMElement myOperation(OMElement request) throws AxisFault {
log.debug("Request: {}", request);
..
log.debug("Response: {}", response);
return response
}
ローテクですが、私にとってはうまくいきます:-)
-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
これはうまくいった