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 <[EMAIL PROTECTED]> > À : [email protected] > 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> > > À : [email protected] > > 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 <[EMAIL PROTECTED]> 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:>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:>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:>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 <[EMAIL PROTECTED]> > > > À : [email protected] > > > Envoyé le : Jeudi, 30 Août 2007, 17h18mn 03s > > > Objet : Re: Tr : Axis problem returning byteArray > > > > > > > > > === message truncated ===
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
