我目前正在处理一个因以下SOAP错误而失败的Web服务:
其他信息:响应的内容类型text / html message与绑定的内容类型不匹配(text / xml; 字符集= UTF-8)。如果使用自定义编码器,请确保 IsContentTypeSupported方法正确实现。第一个638 响应的字节是:'
<?xml version="1.0" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>null</faultstring>
<detail>
<IBResponse type="error">
<DefaultTitle>Integration Broker Response</DefaultTitle>
<StatusCode>20</StatusCode>
<MessageID>535</MessageID>
<DefaultMessage><![CDATA[User Password required for Service Operation CI_GAX_TEAM_MEMBER_CI_G. (158,535)]]></DefaultMessage>
<MessageParameters>
<Parameter><![CDATA[CI_GAX_TEAM_MEMBER_CI_G]]></Parameter>
</MessageParameters>
</IBResponse>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'."
Web服务最初是在http中,但出于安全考虑,我们必须将其切换为https。这个问题的主要部分是CDATA[User Password required for Service Operation CI_GAX_TEAM_MEMBER_CI_G. (158,535)
,我认为这不是密码问题我只是认为它可能在配置文件或其他东西中的安全设置问题。我可以通过它提示我输入ID的初始部分,这意味着它通过https进行连接,但似乎这里可能存在证书问题。
答案 0 :(得分:0)
您收到的是一个网页(text / html),而不是从服务器接收任何有效的响应消息(在您的情况下,有效的肥皂消息,也可能是肥皂故障)。
通常情况下,如果身份验证失败/授权/访问被拒绝等。
正如您所提到的,http到https协议会在您的服务中发生变化,所以肯定会出现身份验证问题。
在这种情况下,最好的办法是,熟悉soapui等工具并尝试使用它与您的Web服务建立连接,然后相应地更改现有客户端。
在这些工具中提供身份验证/证书等比直接在客户端代码中尝试更容易。此外,您还可以清楚地看到日志和错误详细信息。