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 "Bill Keese (JIRA)" <ax...@ws.apache.org> on 2005/01/31 09:46:19 UTC

[jira] Updated: (AXIS-1547) Document/Literal wrapped response creates wrong SOAP envelope root element in response message.

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

Bill Keese updated AXIS-1547:
-----------------------------

    Attachment: array.zip

Here's a testcase for returning arrays from Axis to .NET.  (It also tests sending arrays from Axis client)      See the readme file for details.

> Document/Literal wrapped response creates wrong SOAP envelope root element in response message.
> -----------------------------------------------------------------------------------------------
>
>          Key: AXIS-1547
>          URL: http://issues.apache.org/jira/browse/AXIS-1547
>      Project: Axis
>         Type: Bug
>   Components: WSDL processing, Serialization/Deserialization
>     Versions: beta-2
>  Environment: WSDL, Windows XP, J2EE 1.3
>     Reporter: Eric Chijioke
>  Attachments: array.zip
>
> I sent this (accidentally) to axis-user list.
> I received a response from Ane Thomas Manes indicating tht I should file this as a bug:
> I am currently using Axis 1.2 beta to expose my web service. 
> I am using the document/literal (wrapped) configuration. 
>  
> The axis server does something that seems strange, and I'm not sure if it's intentional or not. This email is not as long as it seems.  
>  
>  
> Given this operation (defined in my WSDL):
> <operation name="getFactor">
>     <input name="getFactorRequest" message="impl:getFactorIn"/>
>     <output name="getFactorResponse" message="impl:getFactorOut"/>
> </operation>
> --------------------------------------------------------------------------------- 
> The corresponding input and output messages are defined a follows:
> <message name="getFactorIn">
>     <part name="parameters" element="intf:getFactor"/>
> </message>
> <message name="getFactorOut">
>     <part name="parameters" element="intf:getFactorResponse"/>
> </message>
> --------------------------------------------------------------------------------- 
>  
> The corresponding elements are defined as follows:
> <element name="getFactor">
>     <complexType>
>         <sequence>
>             <element minOccurs="1" maxOccurs="1" name="id" type="xsd:string"/>
>            </sequence>
>     </complexType>
> </element>
> <element name="getFactorResponse">
>     <complexType>
>         <sequence>
>             <element name="factor" minOccurs="1" maxOccurs="1" type="intf:Factor"/>
>         </sequence>
>     </complexType>
> </element>
> --------------------------------------------------------------------------------- 
> I won't bother providing the schema for the intf:Factor type.
>  
> Here's the question:
> When a client calls the getFactor() method, why does the response always contain a top level element in the soap body call getFactorReturn instead of using the name provided in the getFactorResponse element schema: in this case "factor"? 
>  
> So the response to this method looks like this (the top level element of the body tag is <getFactorReturn>):
>  
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ <http://schemas.xmlsoap.org/soap/envelope/> " xmlns:xsd="http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema> " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance> ">  <soapenv:Body>
>   <getFactorResponse xmlns="http://object.hydra.erisk.com <http://object.hydra.erisk.com/> ">
>    <getFactorReturn>
>     <name>My Test Factor</name>
>     <id>1</id>
>    </getFactorReturn>
>   </getFactorResponse>
>  </soapenv:Body>
> </soapenv:Envelope>
>  
> I would have expected the response to this method to look like this (the top level element of the body tag is <factor>):
>  
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ <http://schemas.xmlsoap.org/soap/envelope/> " xmlns:xsd="http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema> " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance> ">  <soapenv:Body>
>   <getFactorResponse xmlns="http://object.hydra.erisk.com <http://object.hydra.erisk.com/> ">
>    <factor>
>     <name>My Test Factor</name>
>     <id>1</id>
>    </factor>
>   </getFactorResponse>
>  </soapenv:Body>
> </soapenv:Envelope>
>  
> The reason this is an issue is that when you auto generate code (at least in .NET) using the WSDL I described above, it assumes (rightly so?) that the top level element of the response SOAP body will be named as you name it in your WSDL. 
>  
> Please let me know if this is an issue with Axis or if there is a spec somewhere that requires the top level element to be named getFactorReturn (in this case).
> Thank You,
> Eric Chijioke

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira