Upgraded to Delphi 10.2 Tokyo, Webservice doesn't work anymore

Hello,

I upgraded from Delphi XE6 with RemObjects SDK 8.3.91.1167 to Delphi 10.2 Tokyo with SDK 9.2.101.1295 and now a SOAP webservice doesn’t work anymore. I get an errormessage that a parameter of a function is not found. I figured out the problem. In that service function is a string parameter. In the old version the parameter element is prefixed with “v1:” and in the new version not.

old / working:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:HNS="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header>
    <ROClientIDHeader xmlns="http://tempuri.org/" SOAP-ENV:mustUnderstand="0">
      <ID>{DD11A159-5D0E-4B1C-94C1-82EECD34402C}</ID>
    </ROClientIDHeader>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body xmlns:ro="http://www.xxxxxx.com/Ws/Generic">
    <v1:EncryptPassword xmlns:v1="http://www.xxxxxx.com/Ws/Generic">
      <v1:plainPassword>123456</v1:plainPassword>
    </v1:EncryptPassword>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

new / not working:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:HNS="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header>
    <ROClientIDHeader xmlns="http://tempuri.org/" SOAP-ENV:mustUnderstand="0">
      <ID>{294FB0D4-E46C-4673-BBA2-A9CF205AE9C3}</ID>
    </ROClientIDHeader>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body xmlns:ro="http://tempuri.org/">
    <v1:EncryptPassword xmlns:v1="http://www.xxxxxx.com/Ws/Generic">
      <plainPassword>123456</plainPassword>
    </v1:EncryptPassword>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

What can I do to add this “v1:” in “plainPassword” again?

looks like you have InputChildrenNamespace attribute with * value in EncryptPassword method
remove it in ServiceBuilder and regenerate _Intf

1 Like

Thanks, I will try that

Edit: That was ist, thank you! I had to change this for four different Webservices. It seams that is not so standard…

An other function of the service doesnt work either. The previously generated _Intf.pas worked very well, now the output is diffrent. I imported the same wsdl. The error message from the server was, that he couldn’t find the string parameters which are now prefixed with “v4” instead of “v3”.
I looked for the InputChildrenNamespace, but in this function (FlatRequest) it wasn’t defined.

can you send your wsdl to support@ for investigation, pls?

Hi EvgenyK

I just sent the wsdl and the old and the new generated *_Intf.pas Unit.

Thank you for your help!
Roman

With the new Alpha Version of SOAP Importer this is fixed. Thanks a lot!

RemObjects Remoting SDK for Delphi - 9.3.104.1299.exe