I’ve been beating my head against this new web service descriptor thing. My previous post about controlling the naming conventions of the generated web service descriptor lead me to build my own wsdl and import it in order to have the best control over my message definition. Well it seems to have lead me to another issue that I don’t think I will be able to overcome. Maybe I’m just tired and am doing something wrong - 15 hours on the same problem can do that :eek:
Anyway, when I first started importing the wsdl to build the services, everything seemed to be working great but I was losing some values in particular records. As I dug deeper I noticed that things that should be treated as lists were really being created as independent objects (documents, strings) and all the values were being lost (ie null)
For example, and array of documents named person, with fields of name and state, would end up creating multiple documents all named person with the fields name and state created but with null values.
So on a hunch, I created a simple service with a couple of arrays, let IS build the web service descripter object (and the wsdl) and as normal, all array objects were appended with “ArrayOf” and the items themselves were appended with “ArrayItemOf”. I manually changed the “ArrayOf” type names, taking off the “ArrayOf” and appending “List” and taking off the “ArrayItemOf” and applending “ListItem”. I deleted the original objects IS that were used to create the wsdl from the folder. Then I recreated the web service descriptor object from the wsdl in the same folder. It created everything just as it was (it put things in subfolders but generally created the same as the origianl).
I call this service from the newest SoapSonar and I get the same problem as described above. Does this mean that the default SOAP processor looks for the text of the element to decide what it is? That just can’t be! Would they really do that or am I missing something?
They also say custom SOAP processors are deprecated and you can’t manually generate a wsdl for service anymore either.
Has anyone else encountered this?