in reply to Re^5: SOAP::Lite, .NET, and complex structures
in thread SOAP::Lite, .NET, and complex structures
Nope, that is pretty much it.
One thing I did find, however, is a size issue of some sort or another. For example, this list with 9 elements is parsed correctly by the .Net WebServices Studio tool.
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x +mlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="h +ttp://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.o +rg/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soa +p/encoding/"> <soap:Body> <TEST:TestStructureNResponse xmlns:TEST="http://localhost:80/TESTS +ervices"> <TEST:TestStructureReturn xmlns:TEST="http://localhost:80/TESTSe +rvices" xsi:type="TEST:TestObj"> <foo soapenc:arrayType="xsd:string[9]" xsi:type="soapenc:Array +"> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> </foo> </TEST:TestStructureReturn> </TEST:TestStructureNResponse> </soap:Body> </soap:Envelope>
But the same response with an array size of 10 returns a There is invalid data at the root level. Line 1, position 1. error from that tool. Here is the data that is returned (retrieved by sending a request by hand to the service via telnet)
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x +mlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="h +ttp://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.o +rg/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soa +p/encoding/"> <soap:Body> <TEST:TestStructureNResponse xmlns:TEST="http://localhost:80/TESTS +ervices"> <TEST:TestStructureReturn xmlns:TEST="http://localhost:80/TESTSe +rvices" xsi:type="TEST:TestObj"> <foo soapenc:arrayType="xsd:string[10]" xsi:type="soapenc:Arra +y"> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> <item xsi:type="xsd:string">a</item> </foo> </TEST:TestStructureReturn> </TEST:TestStructureNResponse> </soap:Body> </soap:Envelope>
Whatever the cause, It is a little bit frustrating, to say the least :)
I am almost to the point of tossing the .NET WebService Studio tool, except that it works with our existing production server. I will update shortly to see if a different version of Apache (the current production setup) causes this to behave.
Update: Happens in the production version of apache as well (1.3), so it does not look like it is related to Apache. In production, the break point is going from 6 to 7 items in the array.
Update 2: Oh yeah. I forgot to say, replace all of the localhost:80 stuff with the local server name. It gets replaced on the server side automatically.
grrrr
--MidLifeXis
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: SOAP::Lite, .NET, and complex structures
by erroneousBollock (Curate) on Aug 16, 2007 at 16:42 UTC |