我有一个客户试图在他们的Java环境中使用我们的.Net WebService。他们使用'javax.xml.soap。*',它需要一个名称空间前缀。这些相同的名称空间前缀会导致我们最终解析异常。
SoapServerMessage.Exception:“服务器无法读取请求。”
我们正在使用'System.Web.Services.WebService'
以下是他们试图通过的请求:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<ct:CredentialsSoapHeader xmlns:ct="http://ourwebsite.com/webservices/"
xsi:type="WebServiceKeyCredentials">
<Key>demoKey</Key>
<Password>demoPassword</Password>
</ct:CredentialsSoapHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ct1:GetUserID xmlns:ct1="http://ourwebsite.com/webservices/">
<EmailAddress>example@somewebsite.com</EmailAddress>
</ct1:GetUserID>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
生成的回复:
HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: text/xml; charset=utf-8
ETag: ""
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 17 Jan 2012 19:28:20 GMT
Content-Length: 0
一旦我删除了名称空间前缀,请求就可以了。我对这个系统不是很熟悉,但我会尝试根据需要提供任何信息。
提前感谢您提供任何帮助!