You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Thomas Beaujard <th...@yahoo.fr> on 2007/09/05 10:44:21 UTC

Re : Re : Re : Tr : Axis problem returning byteArray

Hello,

Here is the wsdl gnerated when I use the ?wsdl. The return object is GMDSRESPCT, adn the tag containing the byteArray is CONTENT. You will notice that CONTENT is defined as xsd:string type. This is weird because I generated the class using WSDL2java and when I first created the wsdl file I specified content as xsd:base64Binary. I really don't understand.

The wsdl : 


<wsdl:types>
    
        
        <complexType name="GMDSREQCT">
            <sequence>
                <element name="TYPE_ID" type="xsd:string" />
                <element name="DOC_ID" type="xsd:string" />
            </sequence>
        </complexType>
        <element name="GMDSREQCT" type="tns1:GMDSREQCT" />
        <complexType name="GMDSRESPCT">
            <sequence>
                <element maxOccurs="1" minOccurs="0" name="CONTENT" type="xsd:string" />
            </sequence>
        </complexType>
        <element name="GMDSRESPCT" type="tns1:GMDSRESPCT" />
    </schema>
    
        
        <complexType name="GMDSERRCT">
            <sequence>
                <element name="GMDSERRCT" type="xsd:string" />
            </sequence>
        </complexType>
    </schema>
    
        
        
        <element name="fault" type="tns2:GMDSERRCT" />
    </schema>
</wsdl:types>
<wsdl:message name="getDocumentRequest">
    <wsdl:part element="tns1:GMDSREQCT" name="GMDSREQCT" />
</wsdl:message>
<wsdl:message name="GMDSERRCT">
    <wsdl:part element="impl:fault" name="fault" />
</wsdl:message>
<wsdl:message name="getDocumentResponse">
    <wsdl:part element="tns1:GMDSRESPCT" name="GMDSRESPCT" />
</wsdl:message>
<wsdl:portType name="DocContentPortType">
    <wsdl:operation name="getDocument" parameterOrder="GMDSREQCT">
        <wsdl:input message="impl:getDocumentRequest" name="getDocumentRequest" />
        <wsdl:output message="impl:getDocumentResponse" name="getDocumentResponse" />
        <wsdl:fault message="impl:GMDSERRCT" name="GMDSERRCT" />
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DocContentSOAPPortSoapBinding" type="impl:DocContentPortType">
    
    <wsdl:operation name="getDocument"><wsdlsoap:operation soapAction="getDocument" />
    <wsdl:input name="getDocumentRequest">
        <wsdlsoap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="getDocumentResponse">
        <wsdlsoap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="GMDSERRCT">
        <wsdlsoap:fault name="GMDSERRCT" use="literal" />
    </wsdl:fault>
</wsdl:operation></wsdl:binding><wsdl:service name="DocContentService">
<wsdl:port binding="impl:DocContentSOAPPortSoapBinding" name="DocContentSOAPPort">
    
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

----- Message d'origine ----
De : WJ Krpelan <kr...@yahoo.com>
À : axis-dev@ws.apache.org
Envoyé le : Mardi, 4 Septembre 2007, 20h05mn 22s
Objet : Re: Re : Re : Tr : Axis problem returning byteArray

Hello,
As it works with me, I'd suspect there is something
wrong with your xsd-File or your WSDL-File
Can I have a look at the WSDL?
Cheers

--- Thomas Beaujard <th...@yahoo.fr> wrote:

> Hi
> 
> Here is the SOAP-trace:
> 
> HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8
> Date: Tue, 04 Sep 2007 11:10:43 GMT Server:
> Apache-Coyote/1.1 Connection: close  
> 
> <soapenv:Body>
> <GMDSRESPCT xmlns="hhhhhhhhhhhhhhhh">
> <CONTENT xsi:type="xsd:byte" xmlns="">37</CONTENT>
> <CONTENT xsi:type="xsd:byte" xmlns="">80</CONTENT>
> <CONTENT xsi:type="xsd:byte" xmlns="">68</CONTENT>
> <CONTENT xsi:type="xsd:byte" xmlns="">70</CONTENT>
> <CONTENT xsi:type="xsd:byte" xmlns="">45</CONTENT>
> <CONTENT xsi:type="xsd:byte" xmlns="">49</CONTENT
> ..........
> <CONTENT xsi:type="xsd:byte" xmlns="">13</CONTENT>
> </GMDSRESPCT></soapenv:Body></soapenv:Envelope>
> 
> 
> As you can see the tag CONTENT appears many times
> with a type byte, whereas it should only appear once
> with the type base64binary.
> I cannot use the xs:string workaround... do you have
> any other idea?
> 
> Thanks for your help
> 
> Thom
> 
> ----- Message d'origine ----
> De : WJ Krpelan <kr...@yahoo.com>
> À : axis-dev@ws.apache.org
> Envoyé le : Vendredi, 31 Août 2007, 12h24mn 28s
> Objet : Re: Re : Tr : Axis problem returning
> byteArray
> 
> Hi
> Could you provice a SOAP-Trace (TCPMon)? Would it
> look
> similar to the one below?
> A less than satisfactory workaround, if you control
> both sides of the wire, would be to change type to
> xs:string and do the conversion within java.
> Cheers
> 
> POST /axis/CalcArr.jws 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: 127.0.0.1:8088
> Cache-Control: no-cache
> Pragma: no-cache
> SOAPAction: ""
> Content-Length: 334
> 
> <?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>
>          <Add xmlns="http://tempuri.org/";;>
>             <i1>ITAMWA==</i1>
>             <i2>FxdiAg==</i2>
>          </Add>
>       </soapenv:Body>
>    </soapenv:Envelope>
> 
> 
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Set-Cookie:
> JSESSIONID=887A1E5E02B52B88387CAD9B3FEA7F6C;
> Path=/axis
> Content-Type: text/xml;charset=utf-8
> Date: Fri, 31 Aug 2007 10:16:54 GMT
> 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:AddResponse
>
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";;
> xmlns:ns1="http://tempuri.org/";;>
>             <AddReturn
> xsi:type="xsd:base64Binary">OEduWg==</AddReturn>
>          </ns1:AddResponse>
>       </soapenv:Body>
>    </soapenv:Envelope>
> 
> 
> --- Thomas Beaujard <th...@yahoo.fr> wrote:
> 
> > Thanks for your answer, I will try to explain my
> > problem more precisely:
> > In fact, I generated my code from WSDL2java with a
> > wsdl file and a xsd file as input. In the xsd file
> I
> > defined the response as being xsd:base64binary.
> > Here is the service definition in my
> > server-config.wsdd:
> >  <service name="DocContent" provider="java:RPC"
> > style="document" use="literal">
> >   <operation name="getDocument"
> qname="getDocument"
> > returnQName="ns1:GMDSRESPCT"
> > returnType="ns1:GMDSRESPCT" soapAction=""
> > xmlns:ns1="...">
> >    <parameter qname="ns1:GMDSREQCT"
> > type="ns1:GMDSREQCT"/>
> >    <fault class="com.....messages.GMDSERRCT"
> > qname="ns1:GMDSERRCT" type="ns1:GMDSERRCT"/>
> >   </operation>
> >   <parameter name="allowedMethods"
> > value="getDocument"/>
> >   <parameter name="typeMappingVersion"
> value="1.2"/>
> >   <parameter name="wsdlPortType"
> > value="DocContent"/>
> >   <parameter name="className"
> >
>
value="com.....webservice.GetDocumentSoapBindingImpl"/>
> >   <parameter name="wsdlServicePort"
> > value="DocContent"/>
> >   <parameter name="wsdlTargetNamespace"
> > value="...."/>
> >   <parameter name="wsdlServiceElement"
> > value="DocContentService"/>
> >   <parameter name="schemaUnqualified"
> > value="......"/>
> >   <typeMapping
> >
>
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > encodingStyle="" qname="ns2:&gt;GMDSREQCT"
> >
>
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > type="java:com......messages.GMDSREQCT"
> > xmlns:ns2="....."/>
> >   <typeMapping
> >
>
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > encodingStyle="" qname="ns3:&gt;GMDSRESPCT"
> >
>
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > type="java:com.....messages.GMDSRESPCT"
> > xmlns:ns3="....."/>
> >   <typeMapping
> >
>
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > encodingStyle="" qname="ns4:&gt;GMDSERRCT"
> >
>
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > type="java:com....messages.GMDSERRCT"
> > xmlns:ns4="..."/>
> >  </service>
> > 
> > Here is the class corresponding to the response :
> >  public class GMDSRESPCT implements Serializable {
> >     private byte[] CONTENT;
> >     private 
> >     public GMDSRESPCT() {
> >     }
> > 
> >     public GMDSRESPCT(byte[] CONTENT) {
> >            this.CONTENT = CONTENT;
> >     }
> > 
> >     public byte[] getCONTENT() {
> >         return CONTENT;
> >     }
> > 
> > So the web service should return an object
> > GMDSRESPCT. But I get the error and when I use
> > tcpmon to see the messages exchanged, I notice
> that
> > the response include <CONTENT> tag for every
> single
> > byte instead of having the array of byte within
> the
> > tag <CONTENT>.
> > 
> > Hope it's not too messy.
> > 
> > Cheers
> > 
> > Thom
> > 
> > 
> > ----- Message d'origine ----
> > De : WJ Krpelan <kr...@yahoo.com>
> > À : axis-dev@ws.apache.org
> > Envoyé le : Jeudi, 30 Août 2007, 17h18mn 03s
> > Objet : Re: Tr : Axis problem returning byteArray
> > 
> > 
> 
=== message truncated ===



      ____________________________________________________________________________________
Fussy? Opinionated? Impossible to please? Perfect.  Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org








      _____________________________________________________________________________ 
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 

Re: **JUNK** Re : Re : Re : Tr : Axis problem returning byteArray

Posted by Deepal jayasinghe <de...@gmail.com>.
If you switch to Axis2 , then you will have what you are expecting,

Thanks
Deepal
> Hello,
>
> Here is the wsdl gnerated when I use the ?wsdl. The return object is
> GMDSRESPCT, adn the tag containing the byteArray is CONTENT. You will
> notice that CONTENT is defined as xsd:string type. This is weird
> because I generated the class using WSDL2java and when I first created
> the wsdl file I specified content as xsd:base64Binary. I really don't
> understand.
>
> The wsdl :
>
>
> <wsdl:types>
>    
>        
>         <complexType name="GMDSREQCT">
>             <sequence>
>                 <element name="TYPE_ID" type="xsd:string" />
>                 <element name="DOC_ID" type="xsd:string" />
>             </sequence>
>         </complexType>
>         <element name="GMDSREQCT" type="tns1:GMDSREQCT" />
>         <complexType name="GMDSRESPCT">
>             <sequence>
>                 <element maxOccurs="1" minOccurs="0" name="CONTENT"
> type="xsd:string" />
>             </sequence>
>         </complexType>
>         <element name="GMDSRESPCT" type="tns1:GMDSRESPCT" />
>     </schema>
>    
>        
>         <complexType name="GMDSERRCT">
>             <sequence>
>                 <element name="GMDSERRCT" type="xsd:string" />
>             </sequence>
>         </complexType>
>     </schema>
>    
>        
>        
>         <element name="fault" type="tns2:GMDSERRCT" />
>     </schema>
> </wsdl:types>
> <wsdl:message name="getDocumentRequest">
>     <wsdl:part element="tns1:GMDSREQCT" name="GMDSREQCT" />
> </wsdl:message>
> <wsdl:message name="GMDSERRCT">
>     <wsdl:part element="impl:fault" name="fault" />
> </wsdl:message>
> <wsdl:message name="getDocumentResponse">
>     <wsdl:part element="tns1:GMDSRESPCT" name="GMDSRESPCT" />
> </wsdl:message>
> <wsdl:portType name="DocContentPortType">
>     <wsdl:operation name="getDocument" parameterOrder="GMDSREQCT">
>         <wsdl:input message="impl:getDocumentRequest"
> name="getDocumentRequest" />
>         <wsdl:output message="impl:getDocumentResponse"
> name="getDocumentResponse" />
>         <wsdl:fault message="impl:GMDSERRCT" name="GMDSERRCT" />
>     </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="DocContentSOAPPortSoapBinding"
> type="impl:DocContentPortType">
>    
>     <wsdl:operation name="getDocument"><wsdlsoap:operation
> soapAction="getDocument" />
>     <wsdl:input name="getDocumentRequest">
>         <wsdlsoap:body use="literal" />
>     </wsdl:input>
>     <wsdl:output name="getDocumentResponse">
>         <wsdlsoap:body use="literal" />
>     </wsdl:output>
>     <wsdl:fault name="GMDSERRCT">
>         <wsdlsoap:fault name="GMDSERRCT" use="literal" />
>     </wsdl:fault>
> </wsdl:operation></wsdl:binding><wsdl:service name="DocContentService">
> <wsdl:port binding="impl:DocContentSOAPPortSoapBinding"
> name="DocContentSOAPPort">
>    
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> ----- Message d'origine ----
> De : WJ Krpelan <kr...@yahoo.com>
> À : axis-dev@ws.apache.org
> Envoyé le : Mardi, 4 Septembre 2007, 20h05mn 22s
> Objet : Re: Re : Re : Tr : Axis problem returning byteArray
>
> Hello,
> As it works with me, I'd suspect there is something
> wrong with your xsd-File or your WSDL-File
> Can I have a look at the WSDL?
> Cheers
>
> --- Thomas Beaujard <th...@yahoo.fr> wrote:
>
> > Hi
> >
> > Here is the SOAP-trace:
> >
> > HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8
> > Date: Tue, 04 Sep 2007 11:10:43 GMT Server:
> > Apache-Coyote/1.1 Connection: close  
> >
> > <soapenv:Body>
> > <GMDSRESPCT xmlns="hhhhhhhhhhhhhhhh">
> > <CONTENT xsi:type="xsd:byte" xmlns="">37</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">80</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">68</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">70</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">45</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">49</CONTENT
> > ..........
> > <CONTENT xsi:type="xsd:byte" xmlns="">13</CONTENT>
> > </GMDSRESPCT></soapenv:Body></soapenv:Envelope>
> >
> >
> > As you can see the tag CONTENT appears many times
> > with a type byte, whereas it should only appear once
> > with the type base64binary.
> > I cannot use the xs:string workaround... do you have
> > any other idea?
> >
> > Thanks for your help
> >
> > Thom
> >
> > ----- Message d'origine ----
> > De : WJ Krpelan <kr...@yahoo.com>
> > À : axis-dev@ws.apache.org
> > Envoyé le : Vendredi, 31 Août 2007, 12h24mn 28s
> > Objet : Re: Re : Tr : Axis problem returning
> > byteArray
> >
> > Hi
> > Could you provice a SOAP-Trace (TCPMon)? Would it
> > look
> > similar to the one below?
> > A less than satisfactory workaround, if you control
> > both sides of the wire, would be to change type to
> > xs:string and do the conversion within java.
> > Cheers
> >
> > POST /axis/CalcArr.jws 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: 127.0.0.1:8088
> > Cache-Control: no-cache
> > Pragma: no-cache
> > SOAPAction: ""
> > Content-Length: 334
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >    <soapenv:Envelope
> >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> <http://schemas.xmlsoap.org/soap/envelope/%22>;;
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> <http://www.w3.org/2001/XMLSchema%22>;;
> >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> <http://www.w3.org/2001/XMLSchema-instance%22>;;>
> >       <soapenv:Body>
> >          <Add xmlns="http://tempuri.org/" <http://tempuri.org/%22>;;>
> >             <i1>ITAMWA==</i1>
> >             <i2>FxdiAg==</i2>
> >          </Add>
> >       </soapenv:Body>
> >    </soapenv:Envelope>
> >
> >
> > HTTP/1.1 200 OK
> > Server: Apache-Coyote/1.1
> > Set-Cookie:
> > JSESSIONID=887A1E5E02B52B88387CAD9B3FEA7F6C;
> > Path=/axis
> > Content-Type: text/xml;charset=utf-8
> > Date: Fri, 31 Aug 2007 10:16:54 GMT
> > Connection: close
> >
> > <?xml version="1.0" encoding="utf-8"?>
> >    <soapenv:Envelope
> >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> <http://schemas.xmlsoap.org/soap/envelope/%22>;;
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> <http://www.w3.org/2001/XMLSchema%22>;;
> >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> <http://www.w3.org/2001/XMLSchema-instance%22>;;>
> >       <soapenv:Body>
> >          <ns1:AddResponse
> >
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> <http://schemas.xmlsoap.org/soap/encoding/%22>;;
> > xmlns:ns1="http://tempuri.org/" <http://tempuri.org/%22>;;>
> >             <AddReturn
> > xsi:type="xsd:base64Binary">OEduWg==</AddReturn>
> >          </ns1:AddResponse>
> >       </soapenv:Body>
> >    </soapenv:Envelope>
> >
> >
> > --- Thomas Beaujard <th...@yahoo.fr> wrote:
> >
> > > Thanks for your answer, I will try to explain my
> > > problem more precisely:
> > > In fact, I generated my code from WSDL2java with a
> > > wsdl file and a xsd file as input. In the xsd file
> > I
> > > defined the response as being xsd:base64binary.
> > > Here is the service definition in my
> > > server-config.wsdd:
> > >  <service name="DocContent" provider="java:RPC"
> > > style="document" use="literal">
> > >   <operation name="getDocument"
> > qname="getDocument"
> > > returnQName="ns1:GMDSRESPCT"
> > > returnType="ns1:GMDSRESPCT" soapAction=""
> > > xmlns:ns1="...">
> > >    <parameter qname="ns1:GMDSREQCT"
> > > type="ns1:GMDSREQCT"/>
> > >    <fault class="com.....messages.GMDSERRCT"
> > > qname="ns1:GMDSERRCT" type="ns1:GMDSERRCT"/>
> > >   </operation>
> > >   <parameter name="allowedMethods"
> > > value="getDocument"/>
> > >   <parameter name="typeMappingVersion"
> > value="1.2"/>
> > >   <parameter name="wsdlPortType"
> > > value="DocContent"/>
> > >   <parameter name="className"
> > >
> >
> value="com.....webservice.GetDocumentSoapBindingImpl"/>
> > >   <parameter name="wsdlServicePort"
> > > value="DocContent"/>
> > >   <parameter name="wsdlTargetNamespace"
> > > value="...."/>
> > >   <parameter name="wsdlServiceElement"
> > > value="DocContentService"/>
> > >   <parameter name="schemaUnqualified"
> > > value="......"/>
> > >   <typeMapping
> > >
> >
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > > encodingStyle="" qname="ns2:&gt;GMDSREQCT"
> > >
> >
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > > type="java:com......messages.GMDSREQCT"
> > > xmlns:ns2="....."/>
> > >   <typeMapping
> > >
> >
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > > encodingStyle="" qname="ns3:&gt;GMDSRESPCT"
> > >
> >
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > > type="java:com.....messages.GMDSRESPCT"
> > > xmlns:ns3="....."/>
> > >   <typeMapping
> > >
> >
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
> > > encodingStyle="" qname="ns4:&gt;GMDSERRCT"
> > >
> >
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
> > > type="java:com....messages.GMDSERRCT"
> > > xmlns:ns4="..."/>
> > >  </service>
> > >
> > > Here is the class corresponding to the response :
> > >  public class GMDSRESPCT implements Serializable {
> > >     private byte[] CONTENT;
> > >     private
> > >     public GMDSRESPCT() {
> > >     }
> > >
> > >     public GMDSRESPCT(byte[] CONTENT) {
> > >            this.CONTENT = CONTENT;
> > >     }
> > >
> > >     public byte[] getCONTENT() {
> > >         return CONTENT;
> > >     }
> > >
> > > So the web service should return an object
> > > GMDSRESPCT. But I get the error and when I use
> > > tcpmon to see the messages exchanged, I notice
> > that
> > > the response include <CONTENT> tag for every
> > single
> > > byte instead of having the array of byte within
> > the
> > > tag <CONTENT>.
> > >
> > > Hope it's not too messy.
> > >
> > > Cheers
> > >
> > > Thom
> > >
> > >
> > > ----- Message d'origine ----
> > > De : WJ Krpelan <kr...@yahoo.com>
> > > À : axis-dev@ws.apache.org
> > > Envoyé le : Jeudi, 30 Août 2007, 17h18mn 03s
> > > Objet : Re: Tr : Axis problem returning byteArray
> > >
> > >
> >
> === message truncated ===


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: Re : Re : Re : Tr : Axis problem returning byteArray

Posted by WJ Krpelan <kr...@yahoo.com>.
Hello,
classical case of "WSDL first". I'd suggest alter the
type of CONTENT to "base64Binary", then generate your
java-code with WSDL2Java and use the resulting classes
Worked with me.
Cheers

--- Thomas Beaujard <th...@yahoo.fr> wrote:

> Hello,
> 
> Here is the wsdl gnerated when I use the ?wsdl. The
> return object is GMDSRESPCT, adn the tag containing
> the byteArray is CONTENT. You will notice that
> CONTENT is defined as xsd:string type. This is weird
> because I generated the class using WSDL2java and
> when I first created the wsdl file I specified
> content as xsd:base64Binary. I really don't
> understand.
> 
> The wsdl : 
> 
> 
> <wsdl:types>
>     
>         
>         <complexType name="GMDSREQCT">
>             <sequence>
>                 <element name="TYPE_ID"
> type="xsd:string" />
>                 <element name="DOC_ID"
> type="xsd:string" />
>             </sequence>
>         </complexType>
>         <element name="GMDSREQCT"
> type="tns1:GMDSREQCT" />
>         <complexType name="GMDSRESPCT">
>             <sequence>
>                 <element maxOccurs="1" minOccurs="0"
> name="CONTENT" type="xsd:string" /> 
*************// xsd:base64Binary//****************
>             </sequence>
>         </complexType>
>         <element name="GMDSRESPCT"
> type="tns1:GMDSRESPCT" />
>     </schema>
>     
>         
>         <complexType name="GMDSERRCT">
>             <sequence>
>                 <element name="GMDSERRCT"
> type="xsd:string" />
>             </sequence>
>         </complexType>
>     </schema>
>     
>         
>         
>         <element name="fault" type="tns2:GMDSERRCT"
> />
>     </schema>
> </wsdl:types>
> <wsdl:message name="getDocumentRequest">
>     <wsdl:part element="tns1:GMDSREQCT"
> name="GMDSREQCT" />
> </wsdl:message>
> <wsdl:message name="GMDSERRCT">
>     <wsdl:part element="impl:fault" name="fault" />
> </wsdl:message>
> <wsdl:message name="getDocumentResponse">
>     <wsdl:part element="tns1:GMDSRESPCT"
> name="GMDSRESPCT" />
> </wsdl:message>
> <wsdl:portType name="DocContentPortType">
>     <wsdl:operation name="getDocument"
> parameterOrder="GMDSREQCT">
>         <wsdl:input
> message="impl:getDocumentRequest"
> name="getDocumentRequest" />
>         <wsdl:output
> message="impl:getDocumentResponse"
> name="getDocumentResponse" />
>         <wsdl:fault message="impl:GMDSERRCT"
> name="GMDSERRCT" />
>     </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="DocContentSOAPPortSoapBinding"
> type="impl:DocContentPortType">
>     
>     <wsdl:operation
> name="getDocument"><wsdlsoap:operation
> soapAction="getDocument" />
>     <wsdl:input name="getDocumentRequest">
>         <wsdlsoap:body use="literal" />
>     </wsdl:input>
>     <wsdl:output name="getDocumentResponse">
>         <wsdlsoap:body use="literal" />
>     </wsdl:output>
>     <wsdl:fault name="GMDSERRCT">
>         <wsdlsoap:fault name="GMDSERRCT"
> use="literal" />
>     </wsdl:fault>
> </wsdl:operation></wsdl:binding><wsdl:service
> name="DocContentService">
> <wsdl:port
> binding="impl:DocContentSOAPPortSoapBinding"
> name="DocContentSOAPPort">
>     
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> 
> ----- Message d'origine ----
> De : WJ Krpelan <kr...@yahoo.com>
> À : axis-dev@ws.apache.org
> Envoyé le : Mardi, 4 Septembre 2007, 20h05mn 22s
> Objet : Re: Re : Re : Tr : Axis problem returning
> byteArray
> 
> Hello,
> As it works with me, I'd suspect there is something
> wrong with your xsd-File or your WSDL-File
> Can I have a look at the WSDL?
> Cheers
> 
> --- Thomas Beaujard <th...@yahoo.fr> wrote:
> 
> > Hi
> > 
> > Here is the SOAP-trace:
> > 
> > HTTP/1.1 200 OK Content-Type:
> text/xml;charset=utf-8
> > Date: Tue, 04 Sep 2007 11:10:43 GMT Server:
> > Apache-Coyote/1.1 Connection: close  
> > 
> > <soapenv:Body>
> > <GMDSRESPCT xmlns="hhhhhhhhhhhhhhhh">
> > <CONTENT xsi:type="xsd:byte" xmlns="">37</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">80</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">68</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">70</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">45</CONTENT>
> > <CONTENT xsi:type="xsd:byte" xmlns="">49</CONTENT
> > ..........
> > <CONTENT xsi:type="xsd:byte" xmlns="">13</CONTENT>
> > </GMDSRESPCT></soapenv:Body></soapenv:Envelope>
> > 
> > 
> > As you can see the tag CONTENT appears many times
> > with a type byte, whereas it should only appear
> once
> > with the type base64binary.
> > I cannot use the xs:string workaround... do you
> have
> > any other idea?
> > 
> > Thanks for your help
> > 
> > Thom
> > 
> > ----- Message d'origine ----
> > De : WJ Krpelan <kr...@yahoo.com>
> > À : axis-dev@ws.apache.org
> > Envoyé le : Vendredi, 31 Août 2007, 12h24mn 28s
> > Objet : Re: Re : Tr : Axis problem returning
> > byteArray
> > 
> > Hi
> > Could you provice a SOAP-Trace (TCPMon)? Would it
> > look
> > similar to the one below?
> > A less than satisfactory workaround, if you
> control
> > both sides of the wire, would be to change type to
> > xs:string and do the conversion within java.
> > Cheers
> > 
> > POST /axis/CalcArr.jws 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: 127.0.0.1:8088
> > Cache-Control: no-cache
> > Pragma: no-cache
> > SOAPAction: ""
> > Content-Length: 334
> > 
> > <?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>
> >          <Add xmlns="http://tempuri.org/";;>
> >             <i1>ITAMWA==</i1>
> >             <i2>FxdiAg==</i2>
> >          </Add>
> >       </soapenv:Body>
> >    </soapenv:Envelope>
> > 
> > 
> > HTTP/1.1 200 OK
> > Server: Apache-Coyote/1.1
> > Set-Cookie:
> > JSESSIONID=887A1E5E02B52B88387CAD9B3FEA7F6C;
> > Path=/axis
> > Content-Type: text/xml;charset=utf-8
> 
=== message truncated ===



       
____________________________________________________________________________________
Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase.
http://farechase.yahoo.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org