我知道这可能听起来像是重复但是尽管这项研究的结果很多,但我无法找到合适的答案。
我使用的是使用Axis(第一个)构建的Java Web服务,在Tomcat v5.5上运行,而.Net客户端使用一些Web引用(不是服务引用)。 我想要做的是查看我的客户端soap enveloppe的传出请求。
到目前为止,我尝试使用soapUI,很棒的工具,帮助了我很多其他东西,但我的Web服务的结构非常复杂(复杂的数据类型的数组)所以我不知道我怎么能给他一些参数,这里是生成的请求的例子:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.main.gimaweb.itrec.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<web:televerserDocument soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<wsi xsi:type="urn:DocumentWSI" xmlns:urn="urn:DocumentWS">
<version xsi:type="xsd:string">?</version>
<documents xsi:type="doc:ArrayOf_tns1_DocumentWVO" soapenc:arrayType="urn:DocumentWVO[]" xmlns:doc="adress"/>
</wsi>
</web:televerserDocument>
</soapenv:Body>
</soapenv:Envelope>
但我需要的是一个包含数据的数组,因此为此目的缺少许多xml标记。也许有办法生成更完整的样本请求? (我不知道我是否足够清楚)。
我也尝试使用Fiddler,这也是一个很棒的工具,但我从来没有设法获得soap enveloppe,我刚从更新Web引用时获得了WSDL。 我尝试了不同类型的地址,如:
localhost:port
localhost.:port
ipv4.fiddler:port
hostname:port
但我觉得地址不是问题的根源,我也使用ISS Express而不是Visual Studio开发服务器。
最后,我尝试使用一些名为Membrane Moniter的软件,但没办法得到它,它已经变得很老了,也许有人知道另一种选择
有人知道如何做到这一点吗?
编辑:我也尝试在服务器端使用TCP / IP Monitor,但是再一次,我只从VS的更新中获取WSDL。我真的不明白为什么。编辑:我的Java Webservices在Tomcat v5.5上运行,我的ASP.Net客户端是在IIS Express上运行的Web应用程序