我已经在 Delphi 7 中导入了一个WSDL并在其上调用了一个函数,并会显示一条错误消息:
项目Project1.exe引发异常类ERemotableException,消息'服务器无法处理请求。 --->一个或多个实体的验证失败。请参阅' EntityValidationErrors'物业详情。'。流程停止了。使用步骤或运行继续。
当我调用WebService方法(在Delphi 7中 )时,使用Fiddler软件我收到了消息内容(XML):
<?xml version="1.0"?>
<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" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><NS1:Save xmlns:NS1="http://tempuri.org/"><from xsi:type="xsd:string">1</from><to xsi:type="xsd:string">2</to><body xsi:type="xsd:string">ServiceTest</body></NS1:Save></SOAP-ENV:Body></SOAP-ENV:Envelope>
然后我在 Delphi XE5 中调用相同的方法和Web服务,没有错误和XML内容:
<?xml version="1.0"?>
<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:Body><Save xmlns="http://tempuri.org/"><from>1</from><to>2</to><body>ServiceTest</body></Save></SOAP-ENV:Body></SOAP-ENV:Envelope>
SOAP服务器响应:
SOAP Web Service在.NET框架中编写并支持SOAP 1.1和1.2
有什么想法吗?
答案 0 :(得分:0)
我已经使用THTTPRIO.OnBeforeExecute来更改SOAPResponse.Then删除不必要的属性并输入XML源并再次打包并将其分配给SOAPResponse并发送它。
在这种方法中,问题得以解决。