Actually this is the definition of an in/out parameter in the WSDL specifications (http://www.w3c.org/TR/wsdl.html#_parameter) which is why WSDL2Java produces a "Holder" class.
Hope this helps. Florian > -----Original Message----- > From: Russell Butek [mailto:[EMAIL PROTECTED]] > Sent: Friday, February 22, 2002 8:08 AM > To: [EMAIL PROTECTED] > Subject: Re: AW: Problem with message part names in WSDL > > > Werner, your guess is correct. WSDL2Java is functioning as designed. > > Russell Butek > [EMAIL PROTECTED] > > > Dittmann Werner <[EMAIL PROTECTED]> on > 02/22/2002 01:51:48 AM > > Please respond to [EMAIL PROTECTED] > > To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > cc: > Subject: AW: Problem with message part names in WSDL > > > > 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 > > > >
