I'm experience problems very similar to those reported in this thread on
dotnet.framewor k on May 16 at
(http://groups.google.com/group/micro..._26ZoVcD0w9aA).
Steven Cheng from MS was involved in the discussion, but it didn't seem that
there was a resolution on the group.
We have a Java web service which is using Java objects for the equivalent
primitives so they can be null (ie: java.lang.Integ er, Boolean, etc). What we
find is that the first instance of each unique value for the field will be
received correctly by our .Net client. However, subsequent values are
received as null, even when values are actually specified. Here is a snippet
of the xml received by the client which shows the problem:
<schonbucherPar ams i:type="wn11:Sc honbucherParams View">
<bucketLength i:type="d:int" n1:id="6">100</bucketLength>
<integrationNum berOfSteps n1:ref="6" />
</schonbucherPara ms>
Both values should be received as 100. However, bucketLength is received as
100, while integrationNumb erOfSteps is received as null. It looks as if the
second value is making a reference to the first instance of "100" through
n1:ref="6", but the reference is not being followed by the .Net client, so it
sees no value and gives it null.
The WSDL for integrationNumb erOfSteps is:
<xsd:element name="integrati onNumberOfSteps " nillable="true" type="xsd:int" />
It seems to me that the .Net client is seeing "xsd:int" as the type and
treating it as a primitive, and therefore not following the references.
Does anyone have any suggestions for ways to fix this problem? We have
little to no control over the WSDL and soap implementation of the server.
We're use WSE 3.0 on the client. The only option we can think of is making
our own wrapper classes for the primitive types so that they will be
serialized as objects without being recognised as having an underlying
primitive type.
Thanks,
Niall