我有一个简单的.NET应用程序,可以对第三方Axis Web服务进行SOAP调用。当我跟踪HTTP流量时,我看到Request看起来很好,但是我得到了一个例外:“响应不是格式良好的XML。”返回对象为null,因为似乎无法反序列化XML。
关于wsdl中各种命名空间声明的一个问题。其中一些声明指向不再存在的URL /域。这可能导致任何问题吗?
来自wsdl文件:
<wsdl:definitions targetNamespace="http://domaindoesntexist.com/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://domaindoesntexist.com/"
xmlns:intf="http://domaindoesntexist.com/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
删除了有罪数据的示例HTTP响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Fri, 05 Jun 2009 13:54:59 GMT
7cb
<?xml version="1.0" encoding="utf-8"?>
<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">
<soapenv:Body>
<someMethod xmlns="http://test.com/services/myservice/">
</someMethod>
</soapenv:Body>
</soapenv:Envelope>
0
答案 0 :(得分:1)
根据我的经验,命名空间URL不一定是实际的现有URI。一致性是所需要的,因此可以构建内部XML模式以进行验证。意图是(我相信)在该位置托管命名空间定义,以便开发人员可以去那里检查它,但后来人们变得懒惰。
事实上,我可能在后一种情况下是错误的。答案 1 :(得分:0)
其中一些声明指出 不再存在的网址/域名。 这可能导致任何问题吗?
不确定。您是否尝试更新项目中的Web服务?
答案 2 :(得分:0)
我遇到了类似的问题,在查看Wireshark跟踪后发现有一个代理服务器在XML有效负载中插入一些头文件
webservice正在尝试加载xml
“Content-Type:text / xml; charset = utf-8 变化:接受编码,用户代理 连接:关闭 转移编码:分块 2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv / JXN2alGDzGVlgCnRK5 / 6DJlAkcED2011-06-08T15:35:21.505Z“
显然不会加载。
我案例中的完整tcp流
POST / ls / ws / auth HTTP / 1.1
User-Agent:Mozilla / 4.0(兼容; MSIE 6.0; MS Web服务客户端协议2.0.50727.3615)
Content-Type:text / xml;字符集= UTF-8
SOAPAction:“”
主持人:??????
内容长度:487
期待:100-continue
连接:Keep-Alive
2PUldqLs2KqUkJryFiZPQJI.D6RCixeMu443SLd7dCF2qrzws0E2JYatTqm8wD2CuFrSVHEjvJHIXfiLy6w9yBagentfp093.0.1.9019HTTP / 1.0 200 OK
日期:2011年6月8日星期三15:35:21 GMT
服务器:Apache-Coyote / 1.1
Content-Type:text / xml; charset = utf-8
Vary:Accept-Encoding,User-Agent
X-Cache:来自dgtproxy1.skybroadband.com.ph的MISS
连接:关闭
0.1
Content-Type:text / xml; charset = utf-8
Vary:Accept-Encoding,User-Agent
连接:关闭
Transfer-Encoding:chunked
2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv / JXN2alGDzGVlgCnRK5 / 6DJlAkcED2011-06-08T15:35:21.505Z