axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "BLIS Webmaster (Patrick Houbaux)" <webmas...@blis-project.org>
Subject Re: (Please Help me!) Axis 1.2RC2: multiref serialization of xsd simple types / interoperability with .NET
Date Mon, 03 Jan 2005 23:38:40 GMT
After debugging with the axis sources, I think I probably found a bug in AXIS1.2RC2 which I
tried to explain in the Issue AXIS-1746.

I will try to propose a patch (as soon as I can).

Cheers,
Patrick.

BLIS Webmaster (Patrick Houbaux) wrote:
> Hi all,
> 
> Any idea about the problem I have mentionned in the following?
> I'm still stuck with that and it's becoming urgent for me to solve it.
> 
> Thanks in advance for any help.
> Regards,
> Patrick.
> 
> BLIS Webmaster (Patrick Houbaux) wrote:
> 
>> Hi all,
>>
>> I have a RPC web service deployed with Axis 1.2RC2.
>> For performance issue some of my methods are actually sending the 
>> response data in compressed attachments to the clients.
>>
>> I did set the server to use multiref because the data model I'm 
>> sending is a graph and to avoid stack overflow errors.
>>
>> Everything is working fine for java clients.
>>
>> Almost everything is working fine for .NET clients (extraction of 
>> attachments, decompression) except that I'm currently struggling with 
>> the deserialization in .NET of the attached data especially for the 
>> simple XML types.
>>
>> I have no problem for mapping my complex types to the generated proxy 
>> assembly types in .NET but if one of the element in my complex types 
>> have a value of an XML simple type, it is ignored by the SOAP 
>> deserializer of .NET.
>>
>> Here is a snippet of what axis is sending (just pasted the relevant 
>> part of the message that causes problem):
>> /------------------------
>> [...]
>> <ns2:SABLEThermSpace xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="ns2:SABLEThermSpace" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
>> xmlns:ns2="urn:datatypes.rpc.thermal.dapi.webservices.sable.blis_project.org" 
>> id="id0" soapenc:root="0">
>>             <GUID xsi:type="soapenc:string">35skClkL5BfP3UzE0csesq</GUID>
>>             [..]
>>             <heatingDesignTemperature href="#id7"/>
>>             <metadatas href="#id8"/>
>>             [..]
>> </ns2:SABLEThermSpace>
>> [...]
>> <multiRef id="id8" soapenc:root="0" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="ns3:SABLEInstanceMetaDatas" 
>> xmlns:ns3="urn:datatypes.rpc.common.dapi.webservices.sable.blis_project.org" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
>>             <dateCreated href="#id14"/>
>>             <dateModified href="#id15"/>
>>             <description xsi:type="soapenc:string">N/A</description>
>>             <locked href="#id16"/>
>>             <modelServerInstanceURL 
>> xsi:type="soapenc:string">http://ems.eurostep.fi:8080/EMS/7240688</modelServerInstanceURL>

>>
>>             <name xsi:type="soapenc:string">IfcSpace</name>
>>             <owner xsi:type="soapenc:string">eurostepper</owner>
>>             <previousRevision 
>> xsi:type="soapenc:string">3</previousRevision>
>>             <revision xsi:type="soapenc:string">4</revision>
>>             <status xsi:type="soapenc:string">not_defined</status>
>>         </multiRef>
>> [...]
>>         <multiRef id="id7" soapenc:root="0" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="xsd:double" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1000.0</multiRef>

>>
>> [...]
>>         <multiRef id="id15" soapenc:root="0" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="xsd:long" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1103559114445</multiRef>

>>
>>         <multiRef id="id14" soapenc:root="0" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="xsd:long" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1103559114445</multiRef>

>>
>>         <multiRef id="id16" soapenc:root="0" 
>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>> xsi:type="xsd:boolean" 
>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">false</multiRef>

>>
>> [...]
>> /------------------------
>>
>>
>> The deserialization of my object is going fine (no errors) except for 
>> the mutiref #id7, #id14, #id15 and #id16: they don't get deserialized 
>> while the deserialization of the multiref #id8 is ok.
>>
>> Is there any specific reasons why Axis 1.2RC2 is sending multiref for 
>> XML simple types while it is sending non multiref for the 
>> soapenc:string type for instance? Does it make sense?
>>
>> I tested that if I replace (for instance) the multiref for the XML 
>> simple types by non multiref, I would get the .NET deserialization 
>> working.
>>
>> i.e.: <heatingDesignTemperature href="#id7"/>
>> replaced by
>> <heatingDesignTemperature 
>> xsi:type="xsd:double">1000.0</heatingDesignTemperature>
>>
>> Any idea? Is there a setting I need to do on the server side to tell 
>> axis to not send multiref for XML simple types even if I set the 
>> server parameter sendMultiRefs to true?
>>
>> Regards,
>> Patrick.

Mime
View raw message