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 "Per Salomonsson (JIRA)" <ax...@ws.apache.org> on 2006/07/03 10:58:31 UTC

[jira] Updated: (AXIS-2473) Server reponse does not match WSDL

     [ 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org