SOAP日志记录axis2

5

使用axis1,可以通过在log4j.properties的HTTPSender上添加日志记录来记录进出的SOAP消息。升级到axis2(版本1.4.1)后,我很难找出如何完成同样类型的记录。我尝试在axis2包和org.apache.commons.httpclient上添加日志记录,但没有提供任何日志记录。

有什么想法吗?

TIA

2个回答

6

尝试使用DEBUG级别记录以下两个软件包:

  • httpclient.wire
  • org.apache.commons.httpclient

您应该看到与您进行的任何请求类似的输出:

>> "SOAPAction: urn:GeteBayOfficialTime[\r][\n]"
>> "User-Agent: Axis2[\r][\n]"
>> "Host: api.sandbox.ebay.com[\r][\n]"
>> "Content-Length: 1546[\r][\n]"
>> "Content-Type: text/xml; charset=UTF-8[\r][\n]"
>> "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><ns1:RequesterCredentials xmlns:ns1="urn:ebay:apis:eBLBaseComponents"><ns1:eBayAuthToken>XYZ_ABCD</ns1:eBayAuthToken></ns1:RequesterCredentials></soapenv:Header><soapenv:Body><ns1:GeteBayOfficialTimeRequest xmlns:ns1="urn:ebay:apis:eBLBaseComponents" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:GeteBayOfficialTimeRequestType"><ns1:DetailLevelCodeType>ReturnAll</ns1:DetailLevelCodeType><ns1:ErrorLanguage>en_US</ns1:ErrorLanguage><ns1:Version>427</ns1:Version></ns1:GeteBayOfficialTimeRequest></soapenv:Body></soapenv:Envelope>

对于传入响应:

<< "HTTP/1.1 200 OK[\r][\n]"
<< "Date: Wed, 23 Aug 2006 02:17:33 GMT[\r][\n]"
<< "Server: Microsoft-IIS/5.0[\r][\n]"
<< "X-EBAY-API-SERVER-NAME: ZXCVBA[\r][\n]"
<< "Content-Type: text/xml;charset=utf-8[\r][\n]"
<< "X-Cache: MISS from thrasher.sjc.ebay.com[\r][\n]"
<< "Connection: close[\r][\n]"
<< "<?xml version="1.0" encoding="UTF-8"?>[\n]"
<< "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[\n]"
<< " <soapenv:Body>[\n]"
<< " <GeteBayOfficialTimeResponse xmlns="urn:ebay:apis:eBLBaseComponents">[\n]"
<< " <Timestamp>2006-08-23T02:17:33.544Z</Timestamp>[\n]"
<< " <Ack>Success</Ack>[\n]"
<< " <Version>475</Version>[\n]"
<< " <Build>e475_core_Bundled_3434772_R1</Build>[\n]"
<< " </GeteBayOfficialTimeResponse>[\n]"
<< " </soapenv:Body>[\n]"
<< "</soapenv:Envelope>"

1
谢谢。这个(httpclient.wire)可以用来记录发送的消息。 - Dinoop paloli

0
在Apache Axis2的最新版本中,您可以通过将DEBUG级别设置为org.apache.http来记录请求和响应。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接