【问题标题】:Log axis2 client requests and responses记录axis2客户端请求和响应
【发布时间】:2011-02-01 05:32:23
【问题描述】:

我想记录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"/>

没有成功。

【问题讨论】:

标签: java web-services axis2


【解决方案1】:

对于 SOAP 消息的 Axis2 客户端日志记录,只需在运行独立客户端时使用以下 JVM 参数或在 Appln 中包含此 VM 参数。服务器启动脚本,

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

干杯, 桑卡尔

【讨论】:

  • Sankar:今天我的英雄的名字。
  • 要在 Eclipse 中运行它,请将这些参数写入 Debug 配置/在 VM 参数中运行配置
  • 如果您已经在使用 log4j 记录器:log4j.logger.org.apache.commons.httpclient=debug log4j.logger.httpclient.wire=debug
【解决方案2】:

如果将以下行添加到 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

【讨论】:

    【解决方案3】:

    我知道这有点冗长,但我们是这样解决的:

    SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
    OMElement requestElement = request.getOMElement(RegisterIntegrationAgent.MY_QNAME, factory);
    LOGGER.debug(requestElement);
    

    【讨论】:

      【解决方案4】:

      -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

      成功了

      【讨论】:

      • 2 岁答案的副本
      • 不完全。它包括 httpclient.wire 模式,用于记录有线数据。
      • @Scott:您所说的模式包含在 2(现在 8)岁的答案中
      【解决方案5】:

      我通常只记录 SOAP 消息的主体,传递给我的服务类。

      public OMElement myOperation(OMElement request) throws AxisFault {
      
          log.debug("Request: {}", request);
      
          ..
      
          log.debug("Response: {}", response);
      
          return response
      }
      

      技术含量低,但对我有用 :-)

      【讨论】:

      • 谢谢,我正在寻找客户端日志记录。
      • 如Manuel所说,这仅适用于服务器端
      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      相关资源
      最近更新 更多