1

我有一个简单的 .NET 应用程序,它可以对第三方 Axis Web 服务进行 SOAP 调用。当我跟踪 HTTP 流量时,我看到请求看起来很好,但是我遇到了一个异常:“响应不是格式良好的 XML。” 返回对象为空,因为似乎无法反序列化 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
4

3 回答 3

1

根据我的经验,命名空间 URL 不必是实际存在的 URI。一致性是所需要的,因此可以构建内部 XML 模式以进行验证。目的是(我相信)在该位置托管命名空间定义,以便开发人员可以去那里检查它,但后来人们变得懒惰了。

事实上,我在后一种情况下可能是完全错误的。

于 2010-05-24T22:44:43.650 回答
0

其中一些声明指向不再存在的 URL/域。这会导致任何问题吗?

当然。您是否尝试过更新项目中的网络服务?

于 2009-06-09T21:44:10.970 回答
0

我遇到了类似的问题,在查看 Wireshark 跟踪后发现有一个代理服务器在 XML 有效负载中插入一些标头

webservice 正在尝试加载 xml

"Content-Type: text/xml;charset=utf-8 Vary: Accept-Encoding,User-Agent Connection: close Transfer-Encoding: chunked 2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC/WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF/cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv/JXN2alGDzGVlgCnRK5/6DJlAkcED2011-06-08T15:35:21.505 Z"

这显然不会加载。

就我而言,完整的 tcp 流

发布 /ls/ws/auth HTTP/1.1

用户代理:Mozilla/4.0(兼容;MSIE 6.0;MS Web 服务客户端协议 2.0.50727.3615)

内容类型:文本/xml;字符集=utf-8

SOAPAction:“”

主持人: ??????

内容长度:487

期望:100-继续

连接:保持活动

2PUldqLs2KqUkJryFiZPQJI.D6RCixeMu443SLd7dCF2qrzws0E2JYatTqm8wD2CuFrSVHEjvJHIXfiLy6w9yBagentfp093.0.1.9019HTTP/1.0 200 OK

日期:格林威治标准时间 2011 年 6 月 8 日星期三 15:35:21

服务器:Apache-Coyote/1.1

内容类型:text/xml;charset=utf-8

变化:接受编码,用户代理

X-Cache:来自 dgtproxy1.skybroadband.com.ph 的 MISS

连接:关闭

.1

内容类型:text/xml;charset=utf-8

变化:接受编码,用户代理

连接:关闭

传输编码:分块

2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC/WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF/cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv/JXN2alGDzGVlgCnRK5/6DJlAkcED2011-06-08T15:35:21.505Z

于 2011-06-09T08:15:37.777 回答