You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by chan <kc...@hknet.com> on 2001/03/20 14:44:56 UTC

deserializer for double array

i encounter a problem in deserializing a double array

 public class Invoice
  {
  String name;
  int amount;
  int[][] array;

The following codes were used:

   SOAPMappingRegistry registry = new SOAPMappingRegistry();
    QName qname = new QName( "urn:my_encoding", "Invoice" );
    BeanSerializer serializer = new BeanSerializer();
    registry.mapTypes( Constants.NS_URI_SOAP_ENC, qname, arrayt.Invoice.class, serializer, serializer );
   Invoice inv=new Invoice( "MyInvoice", 42, new int[][]{{3,4,5},{40,50,60},{400,500,600}} );
   params.addElement( new Parameter( "invoice", arrayt.Invoice.class, inv, null ) );
    call.setParams( params );

Serialization was OK:

<array xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:Array" ns3:arrayType="ns3:Array[3]">
<item xsi:type="ns3:Array" ns3:arrayType="xsd:int[3]">
<item xsi:type="xsd:int">3</item>
<item xsi:type="xsd:int">4</item>
<item xsi:type="xsd:int">5</item>
</item>
<item xsi:type="ns3:Array" ns3:arrayType="xsd:int[3]">
<item xsi:type="xsd:int">40</item>
<item xsi:type="xsd:int">50</item>
<item xsi:type="xsd:int">60</item>
</item>
<item xsi:type="ns3:Array" ns3:arrayType="xsd:int[3]">
<item xsi:type="xsd:int">400</item>
<item xsi:type="xsd:int">500</item>
<item xsi:type="xsd:int">600</item>
</item>
</array>

But deserialization generated the following fault:

 <faultstring>No mapping found for 'http://schemas.xmlsoap.org/soap/encoding/:Array' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.</faultstring>

can anybody help me please? thanks.

kenny