axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From axis-...@ws.apache.org
Subject [jira] Commented: (AXIS-1547) Document/Literal wrapped response creates wrong SOAP envelope root element in response message.
Date Fri, 24 Sep 2004 21:39:33 GMT
The following comment has been added to this issue:

     Author: Ias
    Created: Fri, 24 Sep 2004 2:37 PM
       Body:
I'd like to recommend specifying your operation's description with WSDD because Axis uses
the information to make a response message as you desire.
---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/AXIS-1547?page=comments#action_53399

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/AXIS-1547

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: AXIS-1547
    Summary: Document/Literal wrapped response creates wrong SOAP envelope root element in
response message.
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Axis
 Components: 
             WSDL processing
             Serialization/Deserialization
   Versions:
             beta-2

   Assignee: 
   Reporter: Eric Chijioke

    Created: Tue, 7 Sep 2004 6:43 AM
    Updated: Fri, 24 Sep 2004 2:37 PM
Environment: WSDL, Windows XP, J2EE 1.3

Description:
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


---------------------------------------------------------------------
JIRA INFORMATION:
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


Mime
View raw message