记录axis2客户端请求和响应

Posted

技术标签:

【中文标题】记录axis2客户端请求和响应【英文标题】:Log axis2 client requests and responses 【发布时间】: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"/>

没有成功。

【问题讨论】:

对我也不起作用。可能它适用于早期版本(即轴 v1) developervisits.wordpress.com/2017/06/20/… 【参考方案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=%dISO8601 [%XUUID] %5p %t %c1 - %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所说,这仅适用于服务器端

以上是关于记录axis2客户端请求和响应的主要内容,如果未能解决你的问题,请参考以下文章

在 GRPC 中拦截/记录请求和响应

java axis2 调用webservice 怎么捕获超时异常(即超时了让它停下来,不要报错)

Axis2使用WebService的客户端实例

Axis2使用WebService的客户端实例

如何在没有陷阱的情况下实现简单的请求-响应技术

根据wsdl,axis2工具生成客户端代码