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