I built a simple .net 2.0/C# windows application that calls a web service on
WebLogic 6.1 app server. WebLogic supports SOAP 1.1, and .net 2.0 supports
SOAP 1.1 and 1.2. I am able to send simple data types (int, string, boolean)
from the client to the server, but I can't send complex types or arrays of
string or arrays of complex types. I know the web service is working properly
because we tested it with a Java client and it works for all these array data
types, but from the .net client it does not work.
I inspected the SOAP created from the .net client and found that it is using
a "href" attribute to reference the arguments for array data. When this
occurs, the data received on the web service side is always null.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope ">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:testObjectArr xmlns:q1="urn:TableReaderSessionBean">
<arg0 href="#id1" />
</q1:testObjectArr>
<soapenc:Array id="id1" soapenc:arrayType="xsd:anyType[2]">
<Item xsi:type="xsd:boolean">false</Item>
<Item xsi:type="xsd:int">0</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>