Looking at that it seems that axis interprets the part
"Key" as an in-out parameter (because it has the same
name and type in both messages). Renaming it causes axis
to interpret it as a "real" return value. That's just
my guess.

Werner


> -----Urspr�ngliche Nachricht-----
> Von: Christoph Hartmann [mailto:[EMAIL PROTECTED]]
> Gesendet: Donnerstag, 21. Februar 2002 20:01
> An: [EMAIL PROTECTED]
> Betreff: Problem with message part names in WSDL
> 
> 
> I use AXIS nightly build 2002-02-21 / JDK 1.3.1
> 
> 
> I have the following definitions in my WSDL file (truncated):
> 
>     <wsdl:message name="UpdateDataObject">
>        <wsdl:part name="Key" type="stns:EmployeeKey"/>
>        <wsdl:part name="Data" type="stns:Employee"/>
>     </wsdl:message>
>     <wsdl:message name="UpdateDataObjectResponse">
>        <wsdl:part name="Key" type="stns:EmployeeKey"/>
>     </wsdl:message>
>     <wsdl:message name="FaultDetailMessage">
>        <wsdl:part name="Detail" type="stns:EnablerFaultDetailType"/>
>     </wsdl:message>
> 
>     <wsdl:portType name="EmployeePortType">
>        <wsdl:operation name="UpdateDataObject">
>           <wsdl:input message="tns:UpdateDataObject"/>
>           <wsdl:output message="tns:UpdateDataObjectResponse"/>
>           <wsdl:fault message="tns:FaultDetailMessage"/>
>        </wsdl:operation>
>      </wsdl:portType>
> 
> After creating the Java classes with WSDL2Java the resulting
> EmployeePortType.java file has a wrong signature for the
> updateDataObject() method (returns void instead of EmployeeKey,
> wrong type of the "key" parameter):
> 
>     public interface EmployeePortType extends java.rmi.Remote {
>         public void updateDataObject(EmployeeKeyHolder key,
>             Employee data) throws java.rmi.RemoteException,
>             FaultDetailMessage;
>     }
> 
> If I change the part name from "Key" to "Key1" in the 
> UpdateDataObjectResponse message, the resulting
> EmployeePortType.java file looks fine:
> 
>     public interface EmployeePortType extends java.rmi.Remote {
>         public EmployeeKey updateDataObject(EmployeeKey key,
>             Employee data) throws java.rmi.RemoteException,
>             FaultDetailMessage;
>     }
> 
> Do I something wrong/stupid when I use the same part name both
> in the input and output message of a single operation?
> 
> 
> 
>       Thanx,
>       hardy
> 

Reply via email to