[ http://issues.apache.org/jira/browse/AXIS-2473?page=all ]

Per Salomonsson updated AXIS-2473:
----------------------------------

    Attachment: axis-patch.txt

I have attached a patch (and a patched lib) compatible with Axis 1.4.0 
release/branch.
The problem we had was when using document/literal wrapped complex types were 
not serialized correctly (missing namespaces). I have also included a fix for 
using arrays. them "item" tag is now used (to match the xml schema in the WSDL 
file), and with the correct namespace. The array-fix is taken more or less from 
another bugreport that was reported here at JIRA.

Please let me know if it works for you to.
Here is how we have used it:

1. Write the java classes that should represent the web service interface - 
including your java beans.
2. generate deploy/undeploy wsdd's using ant task "axis-wsdl2java" 
(DOCUMENT/LITERAL WRAPPED)
3. startup the server and publish the services.

The patch has only been used/tested with axis on the serverside, on the client 
side we have used 2 other client implementations to test/verify.



> Server reponse does not match WSDL
> ----------------------------------
>
>          Key: AXIS-2473
>          URL: http://issues.apache.org/jira/browse/AXIS-2473
>      Project: Apache Axis
>         Type: Bug

>   Components: WSDL processing
>     Versions: 1.2.1, 1.3
>  Environment: Win2K, Axis running under Tomcat 4.31
>     Reporter: John Busfield
>  Attachments: axis-patch.txt, axis-patched.jar, deploy.wsdd, 
> server-config.wsdd
>
> Below I have included the WSDL for a simple test service, followed by the 
> Axis response to a request for this service. As ou can see, the WSDL claims 
> the paramInt & paramStr elements
> are in the http://util.services.mycompany.com namespace, but in the
> generated response, they're in the http://services.mycompany.com namespace. I 
> am using Axis 1.2.1 but have also also confirmed this behavior in 1.3. 
>  
> The class structure behind the service looks like this
> /^*** Info.java ***/
> package com.mycompany.services.util;
> public class Info 
> {
>       private String paramStr;
>       private int paramInt;
>       public int getParamInt() {
>               return paramInt;
>       }
>       public void setParamInt(int paramInt) {
>               this.paramInt = paramInt;
>       }
>       public String getParamStr() {
>               return paramStr;
>       }
>       public void setParamStr(String paramStr) {
>               this.paramStr = paramStr;
>       }
> }
> /^*** MyService.java ***/
> package com.mycompany.services;
> import com.mycompany.services.util.Info;
> public class MyService 
> {
>       public Info getInfo()
>       {
>               Info i = new Info();
>               i.setParamInt(14);
>               i.setParamStr("hello");
>               
>               return i;
>       }
> }
> ----------------------------------------WSDL----------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://services.mycompany.com";
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="http://services.mycompany.com";
> xmlns:intf="http://services.mycompany.com";
> xmlns:tns1="http://util.services.mycompany.com";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> <!--WSDL created by Apache Axis version: 1.2.1
> Built on Jun 14, 2005 (09:15:57 EDT)-->
>   <wsdl:types>
>    <schema elementFormDefault="qualified"
> targetNamespace="http://services.mycompany.com";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>     <import namespace="http://util.services.mycompany.com"/>
>     <element name="getInfo">
>      <complexType/>
>     </element>
>     <element name="getInfoResponse">
>      <complexType>
>       <sequence>
>        <element name="getInfoReturn" type="tns1:Info"/>
>       </sequence>
>      </complexType>
>     </element>
>    </schema>
>    <schema elementFormDefault="qualified"
> targetNamespace="http://util.services.mycompany.com";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>     <complexType name="Info">
>      <sequence>
>       <element name="paramInt" type="xsd:int"/>
>       <element name="paramStr" nillable="true" type="xsd:string"/>
>      </sequence>
>     </complexType>
>    </schema>
>   </wsdl:types>
>     <wsdl:message name="getInfoRequest">
>        <wsdl:part element="impl:getInfo" name="parameters"/>
>     </wsdl:message>
>     <wsdl:message name="getInfoResponse">
>        <wsdl:part element="impl:getInfoResponse" name="parameters"/>
>     </wsdl:message>
>     <wsdl:portType name="MyService">
>        <wsdl:operation name="getInfo">
>           <wsdl:input message="impl:getInfoRequest"
> name="getInfoRequest"/>
>           <wsdl:output message="impl:getInfoResponse"
> name="getInfoResponse"/>
>        </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:binding name="MyServiceSoapBinding" type="impl:MyService">
>        <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>        <wsdl:operation name="getInfo">
>           <wsdlsoap:operation soapAction=""/>
>           <wsdl:input name="getInfoRequest">
>              <wsdlsoap:body use="literal"/>
>           </wsdl:input>
>           <wsdl:output name="getInfoResponse">
>              <wsdlsoap:body use="literal"/>
>           </wsdl:output>
>        </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:service name="MyServiceService">
>        <wsdl:port binding="impl:MyServiceSoapBinding" name="MyService">
>           <wsdlsoap:address
> location="http://localhost/test/services/MyService"/>
>        </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> HTTP/1.1 200 OK
> Content-Type: text/xml;charset=utf-8
> Transfer-Encoding: chunked
> Date: Mon, 01 May 2006 16:03:16 GMT
> Server: Apache-Coyote/1.1
> 19e
> <?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><getInfoResponse
> xmlns="http://services.mycompany.com";><getInfoReturn><paramInt>14</par
> amInt><paramStr>hello</paramStr></getInfoReturn></getInfoResponse></so
> apenv:Body></soapenv:Envelope>
> 0

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to