You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Svensson, Lars" <sv...@dbf.ddb.de> on 2003/09/01 14:43:14 UTC

Improper deserialization of composite types

In my application, I need to represent a tree-like structure. In order to do
this, I constructed the type Entry, which -- among other properties -- has a
parent (which is also an Entry) and a collection of children (a
java.util.TreeSet containing zero or more objects of type Entry). Through
axis, I can access the server-side methods getByID() and getByNotation()
which both return an Entry including the entry's immediate children (but no
grandchildren) and the entry's parent including all ancestors (but no
siblings). If I, however, try to access an entry in the middle of the
hierarchy, the deserialized answer only returns the requested entry itself
and its children, but entry's parent is null. I'm not a SOAP-expert
(yet...), but the returned SOAP-response seems OK to me. If I access the
methods without going through SOAP (i.e. through a jsp), I get the expected
answer. Has anyone had similar problems before and/or could point me to a
possible solution?

I enclose the request and the response (from TCPMon)

==Request==========

POST /ddc-services/services/ddcBrowse HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: 127.0.0.1
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 457

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ns1:getByID
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://services.ddc-deutsch.de/">
   <ns1:arg0 xsi:type="xsd:long">80</ns1:arg0>
  </ns1:getByID>
 </soapenv:Body>
</soapenv:Envelope>

==Response=========

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Date: Mon, 01 Sep 2003 11:52:40 GMT
Server: Apache Coyote/1.0
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ns1:getByIDResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://services.ddc-deutsch.de/">
   <ns1:getByIDReturn href="#id0"/>
  </ns1:getByIDResponse>
  <multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:entry"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://services.ddc-deutsch.de/">
   <ID xsi:type="xsd:long">80</ID>
   <caption xsi:type="xsd:string">Künste</caption>
   <children href="#id1"/>
   <formattedNotation xsi:type="xsd:string">700</formattedNotation>
   <parent href="#id2"/>
  </multiRef>
  <multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:entry" xmlns:ns3="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">8</ID>
   <caption xsi:type="xsd:string">Künste und Unterhaltung</caption>
   <children href="#id3"/>
   <formattedNotation xsi:type="xsd:string">700</formattedNotation>
   <parent href="#id4"/>
  </multiRef>
  <multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[10]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <item href="#id5"/>
   <item href="#id6"/>
   <item href="#id7"/>
   <item href="#id8"/>
   <item href="#id9"/>
   <item href="#id10"/>
   <item href="#id11"/>
   <item href="#id12"/>
   <item href="#id13"/>
   <item href="#id14"/>
  </multiRef>
  <multiRef id="id9" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:entry" xmlns:ns4="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">736</ID>
   <caption xsi:type="xsd:string">Spezielle Themen zur Bildenden Kunst und
zum Kunsthandwerk</caption>
   <children href="#id15"/>
   <formattedNotation xsi:type="xsd:string">704</formattedNotation>
   <parent xsi:type="ns4:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id13" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:entry" xmlns:ns5="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">740</ID>
   <caption xsi:type="xsd:string">Kunstgalerien, Museen, Privatsammlungen
zur Bildenden Kunst und zum Kunsthandwerk</caption>
   <children href="#id16"/>
   <formattedNotation xsi:type="xsd:string">708</formattedNotation>
   <parent xsi:type="ns5:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id4" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:entry" xmlns:ns6="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">0</ID>
   <caption xsi:type="xsd:string" xsi:nil="true"/>
   <children href="#id17"/>
   <formattedNotation xsi:type="xsd:string" xsi:nil="true"/>
   <parent xsi:type="ns6:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id6" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns7:entry" xmlns:ns7="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">733</ID>
   <caption xsi:type="xsd:string">Kunstphilosophie, Kunsttheorie der
Bildenden Kunst und des Kunsthandwerks</caption>
   <children href="#id18"/>
   <formattedNotation xsi:type="xsd:string">701</formattedNotation>
   <parent xsi:type="ns7:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id3" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[1]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <item href="#id0"/>
  </multiRef>
  <multiRef id="id7" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns8:entry" xmlns:ns8="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">734</ID>
   <caption xsi:type="xsd:string">Verschiedenes zur Bildenden Kunst und zum
Kunsthandwerk</caption>
   <children href="#id19"/>
   <formattedNotation xsi:type="xsd:string">702</formattedNotation>
   <parent xsi:type="ns8:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id14" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns9:entry" xmlns:ns9="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">741</ID>
   <caption xsi:type="xsd:string">Histor., geogr., personenbezogene
Behandlung der Bildenden Kunst und des Kunsthandwerks</caption>
   <children href="#id20"/>
   <formattedNotation xsi:type="xsd:string">709</formattedNotation>
   <parent xsi:type="ns9:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id11" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns10:entry" xmlns:ns10="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">738</ID>
   <caption xsi:type="xsd:string">Verbände und Organisationen, Management
der Bildenden Kunst und des Kunsthandwerks</caption>
   <children href="#id21"/>
   <formattedNotation xsi:type="xsd:string">706</formattedNotation>
   <parent xsi:type="ns10:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id12" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns11:entry" xmlns:ns11="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">739</ID>
   <caption xsi:type="xsd:string">Ausbildung, Forschung, verwandte Themen
zur Bildenden Kunst und zum Kunsthandwerk</caption>
   <children href="#id22"/>
   <formattedNotation xsi:type="xsd:string">707</formattedNotation>
   <parent xsi:type="ns11:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id8" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns12:entry" xmlns:ns12="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">735</ID>
   <caption xsi:type="xsd:string">Wörterbücher, Enzyklopädien zur
Bildenden Kunst und zum Kunsthandwerk</caption>
   <children href="#id23"/>
   <formattedNotation xsi:type="xsd:string">703</formattedNotation>
   <parent xsi:type="ns12:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id10" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns13:entry" xmlns:ns13="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">737</ID>
   <caption xsi:type="xsd:string">Fortlaufende Sammelwerke zur Bildenden
Kunst und zum Kunsthandwerk</caption>
   <children href="#id24"/>
   <formattedNotation xsi:type="xsd:string">705</formattedNotation>
   <parent xsi:type="ns13:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id5" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns14:entry" xmlns:ns14="http://services.ddc-deutsch.de/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <ID xsi:type="xsd:long">732</ID>
   <caption xsi:type="xsd:string">Künste; Bildende Kunst und
Kunsthandwerk</caption>
   <children href="#id25"/>
   <formattedNotation xsi:type="xsd:string">700</formattedNotation>
   <parent xsi:type="ns14:entry" xsi:nil="true"/>
  </multiRef>
  <multiRef id="id23" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id22" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id21" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id20" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id25" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id19" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id17" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[1]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <item href="#id2"/>
  </multiRef>
  <multiRef id="id16" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id18" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
  <multiRef id="id24" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
 </soapenv:Body>
</soapenv:Envelope>


Best regards and thanks in advance


P.S. I noted that the server sends no content-length. Is this on purpose?
-- 
Lars