axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bouche Paul" <Paul.Bou...@student.hpi.uni-potsdam.de>
Subject RE: "Strange" format of RPC/encoded messages
Date Wed, 22 Sep 2004 12:34:37 GMT
Patrick,

What I write know is what I understand from talking to others (credit be to them ;-) and reading
the spec.
The references you see are the normal behaviour of the /encoded use of the parameters (here
RPC/encoded).  This is to allow serialization of complex object graphs (with cyclic references).
 This is specified by the SOAP Encoding and is normal (correct me anyone if I am wrong). 
You can change this behaviour of AXIS in the server-config.wsdd which is in the WEB-INF directory
of the AXIS webapp directory.

Paul


> -----Original Message-----
> From: Patrick Herber [mailto:patrick@arpage.ch]
> Sent: Mittwoch, 22. September 2004 13:54
> To: axis-user@ws.apache.org
> Subject: "Strange" format of RPC/encoded messages
> 
> 
> Hi,
> 
> I created a simple web service with style RPC/encoded, which 
> receives and
> returns complex objects (a request containing an array of 
> sub-requests,
> which in turn contain arrays of sub-sub-requests and the same 
> structure for
> the response). It works fine (for the moment), however I see that the
> generated message (I see it on the SOAPMonitor) is (for me) something
> strange. In fact the child collections are not directed 
> included in their
> parents but referenced, like:
> 
>     <doctorResponse soapenc:arrayType="ns2:DigniResponseDoctorRPC[1]"
> xsi:type="soapenc:Array">
>       <item href="#id2"/>
>     </doctorResponse>
> 
> The same happens also for "xsd:int" elements like:
> 
>   <requestResponseCode href="#id1"/>
>   ...
>   <multiRef id="id1" soapenc:root="0" 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xsi:type="xsd:int" 
>  
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef>
> 
> This makes it difficult for a human to read these messages.
> 
> Could you kindly tell me whether this is the normal behavior 
> of RPC/encoded
> messages or if it is due to a problem/mistake in my WSDL definition?
> I join a simple Response message and an extract of my WSDL 
> file (schema and
> message definitions).
> 
> Thanks a lot for your help!
> 
> Regards,
> Patrick
> 
> 
> <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:validateResponse 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xmlns:ns1="urn:ch.arpage.digni.rpc">
>     <response href="#id0"/>
>   </ns1:validateResponse>
>   <multiRef id="id0" soapenc:root="0" 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xsi:type="ns2:DigniResponseRPC"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
>         xmlns:ns2="urn:ch.arpage.digni.rpc">
>     <insuranceEAN xsi:type="xsd:string">7612345678901</insuranceEAN>
>     <insuranceRequestId xsi:type="xsd:string">123</insuranceRequestId>
>     <responseDate
> xsi:type="xsd:dateTime">2004-09-22T11:19:24.574Z</responseDate>
>     <requestResponseCode href="#id1"/>
>     <doctorResponse soapenc:arrayType="ns2:DigniResponseDoctorRPC[1]"
> xsi:type="soapenc:Array">
>       <item href="#id2"/>
>     </doctorResponse>
>   </multiRef>
>   <multiRef id="id1" soapenc:root="0" 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xsi:type="xsd:int" 
>  
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef>
>   <multiRef id="id2" soapenc:root="0" 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xsi:type="ns3:DigniResponseDoctorRPC" 
>         xmlns:ns3="urn:ch.arpage.digni.rpc" 
>         xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
>     <doctorEAN xsi:type="xsd:string">1108</doctorEAN>
>     <doctorResponseCode href="#id3"/>
>     <positionResponse xsi:type="ns3:DigniResponsePositionRPC"
> xsi:nil="true"/>
>   </multiRef>
>   <multiRef id="id3" soapenc:root="0" 
>         
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
>         xsi:type="xsd:int" 
>  
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">100<
> /multiRef>
> </soapenv:Body>
> </soapenv:Envelope>
> 
> 
> SCHEMA DEFINITION (EXTRACT):
> ===========================
> 
>    <complexType name="DigniResponsePositionRPC">
>     <sequence>
>      <element name="tarmedKey" nillable="true" type="xsd:string"/>
>      <element name="invoiceDate" nillable="true" type="xsd:date"/>
>      <element name="responseCode" type="xsd:int"/>
>     </sequence>
>    </complexType>
>    <complexType name="DigniResponsePositionRPCList">
>     <complexContent>
>      <restriction base="soapenc:Array">
>       <attribute ref="soapenc:arrayType"
> wsdl:arrayType="impl:DigniResponsePositionRPC[]"/>
>      </restriction>
>     </complexContent>
>    </complexType>
>    <complexType name="DigniResponseDoctorRPC">
>     <sequence>
>      <element name="doctorEAN" nillable="true" type="xsd:string"/>
>      <element name="doctorResponseCode" type="xsd:int"/>
>      <element name="positionResponse" nillable="true"
> type="impl:DigniResponsePositionRPCList"/>
>     </sequence>
>    </complexType>
>    <complexType name="DigniResponseDoctorRPCList">
>     <complexContent>
>      <restriction base="soapenc:Array">
>       <attribute ref="soapenc:arrayType"
> wsdl:arrayType="impl:DigniResponseDoctorRPC[]"/>
>      </restriction>
>     </complexContent>
>    </complexType>
>    <complexType name="DigniResponseRPC">
>     <sequence>
>      <element name="insuranceEAN" nillable="true" type="xsd:string"/>
>      <element name="insuranceRequestId" nillable="true" 
> type="xsd:string"/>
>      <element name="responseDate" nillable="true" 
> type="xsd:dateTime"/>
>      <element name="requestResponseCode" type="xsd:int"/>
>      <element name="doctorResponse" nillable="true"
> type="impl:DigniResponseDoctorRPCList"/>
>     </sequence>
>    </complexType>
> 
> 
> MESSAGE DEFINITION
> ==================
> 
>    <wsdl:message name="validateResponse">
>       <wsdl:part name="response" type="impl:DigniResponseRPC"/>
>    </wsdl:message>
> 
> 
> 
> 
> 
> .
> 

.

Mime
View raw message