axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Brette <mb387...@yahoo.fr>
Subject Re: array serialization in 1.3
Date Wed, 15 Mar 2006 11:32:18 GMT
Hi all,

I seem to run in the same issue as Erik.
I have an Axis client that sends incorrectly
serialized request: missing enclosing parameter at
array serialization. 
It worked with 1.1 but not with 1.3.
I also noticed that in 1.3, the stubs generated are
slightly different from the one generated with 1.1... 

Is there any workaround or solution to this issue?

PS.: I also tried the nightly build last friday
without more success.

> Subject:    array serialization in 1.3
> From:       Erik Wright <erik.wright () radialpoint
! com>
> Date:       2006-01-31 20:44:27
> Message-ID: 1138740266.27449.59.camel () localhost !
localdomain
> [Download message RAW]
> 
> Hi,
> 
> I have noticed that array parameters (in or out)
seem to be serialized
> incorrectly in Axis 1.3. I am attaching a sample
WSDL here, along with
> the corresponding input and output. In summary,
instead of creating an
> element for the array parameter (containing the
array members) it
> creates one element for each member, without any
all-enclosing parent. 
> 
> Note that we are using WSDL2Java to generate the
service implementation
> from existing wsdl.
> 
> WSDL snippet (complete wsdl attached):
> 
>   <wsdl:message name="DemoResponse">
>     <wsdl:part name="Foos" type="impl:ArrayOfFoos"
/>
>     <wsdl:part name="Bars" type="impl:ArrayOfBars"
/>
>     <wsdl:part name="SomeNumber"
type="impl:positiveFloat" />
>   </wsdl:message>
> 
> Serialized output (simplified slightly - complete
output attached):
> 
>   <GetDemoResponse>
>     <Foos xsi:type="ns1:Foo">
>       <MyPayload>hello</MyPayload>
>     </Foos>
>     <Bars xsi:type="ns2:Bar">
>       <MyPayload>good</MyPayload>
>     </Bars>
>     <Bars xsi:type="ns3:Bar">
>       <MyPayload>bye</MyPayload>
>     </Bars>
>     <SomeNumber
xsi:type="ns4:positiveFloat">11.7</SomeNumber>
>   </GetDemoResponse>
> 
> In Axis 1.1 this worked as expected. Is there anyway
to get this to
> serialize as:
> 
>   <GetDemoResponse>
>     <Foos xsi:type="ns1:ArrayOfFoos"
soapenc:arrayType="ns1:Foo[1]" >
>       <Foo xsi:type="ns1:Foo">
>         <MyPayload>hello</MyPayload>
>       </Foo>
>     </Foos>
>     <Bars xsi:type="ns1:ArrayOfBars"
soapenc:arrayType="ns1:Bar[2]" >
>       <Bar xsi:type="ns2:Bar">
>         <MyPayload>good</MyPayload>
>       </Bar>
>       <Bar xsi:type="ns3:Bar">
>         <MyPayload>bye</MyPayload>
>       </Bar>
>     </Bars>
>     <SomeNumber
xsi:type="ns4:positiveFloat">11.7</SomeNumber>
>   </GetDemoResponse>
> 
> Thanks for your help in advance.
> 
> -Erik
> 
> ["demo.wsdl" (demo.wsdl)]
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
>  
targetNamespace="http://demo.radialpoint.com/service"
>   xmlns="http://schemas.xmlsoap.org/wsdl/"
>   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>  
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>   xmlns:impl="http://demo.radialpoint.com/service"
>   xmlns:type="http://demo.radialpoint.com/type">
>   <wsdl:types>
>     <schema
>      
targetNamespace="http://demo.radialpoint.com/type"
>       xmlns="http://www.w3.org/2001/XMLSchema">
>       
>       <complexType name="Foo">
>           <sequence>
>             <element name="MyPayload"
type="xsd:string"/>
>           </sequence>
>       </complexType>
>       
>       <complexType name="Bar">
>           <sequence>
>             <element name="MyPayload"
type="xsd:string"/>
>           </sequence>
>       </complexType>
>       
>       <complexType name="Blah">
>           <sequence>
>             <element name="MyPayload"
type="xsd:string"/>
>           </sequence>
>       </complexType>
>       
>       <complexType name="Boing">
>           <sequence>
>             <element name="MyPayload"
type="xsd:string"/>
>           </sequence>
>       </complexType>
>     </schema>
> 
>     <schema
>      
targetNamespace="http://demo.radialpoint.com/service"
>       xmlns="http://www.w3.org/2001/XMLSchema">
>       <import
namespace="http://demo.radialpoint.com/type"/>
> 
>       <complexType name="ArrayOfFoos">
>         <complexContent>
>           <restriction base="soapenc:Array">
>             <sequence>
>               <element name="Foo"
>                 type="type:Foo" minOccurs="0"
>                 maxOccurs="unbounded" />
>             </sequence>
>             <attribute ref="soapenc:arrayType"
>               wsdl:arrayType="type:Foo[]" />
>           </restriction>
>         </complexContent>
>       </complexType>
> 
>       <complexType name="ArrayOfBars">
>         <complexContent>
>           <restriction base="soapenc:Array">
>             <sequence>
>               <element name="Bar"
>                 type="type:Bar" minOccurs="0"
>                 maxOccurs="unbounded" />
>             </sequence>
>             <attribute ref="soapenc:arrayType"
>               wsdl:arrayType="type:Bar[]" />
>           </restriction>
>         </complexContent>
>       </complexType>
> 
>       <complexType name="ArrayOfBlahs">
>         <complexContent>
>           <restriction base="soapenc:Array">
>             <sequence>
>               <element name="Blah"
>                 type="type:Blah" minOccurs="0"
>                 maxOccurs="unbounded" />
>             </sequence>
>             <attribute ref="soapenc:arrayType"
>               wsdl:arrayType="type:Blah[]" />
>           </restriction>
>         </complexContent>
>       </complexType>
> 
>       <complexType name="CustomException">
>         <sequence>
>         </sequence>
>       </complexType>
> 
>       <simpleType name='positiveFloat'>
>         <restriction base='float'>
>           <minInclusive value='0.0' />
>         </restriction>
>       </simpleType>
> 
>     </schema>
>   </wsdl:types>
>   
>   <wsdl:message name="CustomException">
>     <wsdl:part name="CustomException"
type="impl:CustomException"/>
>   </wsdl:message>
> 
>   <wsdl:message name="DemoRequest">
>     <wsdl:part name="Boing" type="type:Boing" />
>     <wsdl:part name="Blahs" type="impl:ArrayOfBlahs"
/>
>   </wsdl:message>
> 
>   <wsdl:message name="DemoResponse">
>     <wsdl:part name="Foos" type="impl:ArrayOfFoos"
/>
>     <wsdl:part name="Bars" type="impl:ArrayOfBars"
/>
>     <wsdl:part name="SomeNumber"
type="impl:positiveFloat" />
>   </wsdl:message>
> 
>   <wsdl:portType name="DemoService">
>     <wsdl:operation name="GetDemo"
>       parameterOrder="Boing Blahs">
>       <wsdl:input message="impl:DemoRequest"
>         name="DemoRequest" />
>       <wsdl:output message="impl:DemoResponse"
>         name="DemoResponse" />
>       <wsdl:fault  message="impl:CustomException"
>         name="CustomException" />
>     </wsdl:operation>
>   </wsdl:portType>
> 
>   <wsdl:binding name="DemoServiceSoapBinding"
>     type="impl:DemoService">
>     <wsdlsoap:binding style="rpc"
>      
transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="GetDemo">
>       <wsdlsoap:operation soapAction="" />
>       <wsdl:input name="DemoRequest">
>         <wsdlsoap:body
>          
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>          
namespace="http://demo.radialpoint.com/service"
>           use="literal" />
>       </wsdl:input>
>       <wsdl:output name="DemoResponse">
>         <wsdlsoap:body
>          
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>          
namespace="http://demo.radialpoint.com/service"
>           use="literal" />
>       </wsdl:output>
>       <wsdl:fault name="CustomException">
>         <wsdlsoap:fault
>          
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>          
namespace="http://demo.radialpoint.com/service"
>           use="literal"/>
>       </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:binding>
> 
>   <wsdl:service name="DemoService">
>     <wsdl:port binding="impl:DemoServiceSoapBinding"
>       name="demo-service/1.0">
>       <wsdlsoap:address
>        
location="http://localhost:7001/demo-service/services/demo-service/1.0"
/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> 
> ["axis.stream" (axis.stream)]
> 
> POST /demo-service/services/demo-service/1.0
HTTP/1.0
> Content-Type: text/xml; charset=utf-8
> Accept: application/soap+xml, application/dime,
multipart/related, text/*
> User-Agent: Axis/1.4
> Host: localhost:7001
> Cache-Control: no-cache
> Pragma: no-cache
> SOAPAction: ""
> Content-Length: 499
> 
> <?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><GetDemo
\
> xmlns="http://demo.radialpoint.com/service"><Boing
xmlns=""><MyPayload>boing \
> boing</MyPayload></Boing><Blahs
xmlns=""><Blahs><MyPayload>nyuk \
> nyuk</MyPayload></Blahs><Blahs><MyPayload>da da \
>
da</MyPayload></Blahs></Blahs></GetDemo></soapenv:Body></soapenv:Envelope>
HTTP/1.1 \
>                 200 OK
> Connection: close
> Date: Tue, 31 Jan 2006 20:25:43 GMT
> Content-Type: text/xml; charset=utf-8
> X-Powered-By: Servlet/2.4 JSP/2.0
> 
> 
> <?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><GetDemoResponse
\
> xmlns="http://demo.radialpoint.com/service"><Foos
xsi:type="ns1:Foo" xmlns="" \
>
xmlns:ns1="http://demo.radialpoint.com/type"><MyPayload>hello</MyPayload></Foos><Bars
\
> xsi:type="ns2:Bar" xmlns="" \
>
xmlns:ns2="http://demo.radialpoint.com/type"><MyPayload>good</MyPayload></Bars><Bars
\
> xsi:type="ns3:Bar" xmlns="" \
>
xmlns:ns3="http://demo.radialpoint.com/type"><MyPayload>bye</MyPayload></Bars><SomeNum
\
> ber xsi:type="ns4:positiveFloat" xmlns="" \
>
xmlns:ns4="http://demo.radialpoint.com/service">11.7</SomeNumber></GetDemoResponse></s
\
> oapenv:Body></soapenv:Envelope>


	

	
		
___________________________________________________________________________ 
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels
pour appeler la France et l'international.
Téléchargez sur http://fr.messenger.yahoo.com

Mime
View raw message