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

Reply via email to