DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10365>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10365

Wrong code generated when using optional "name" attribute of input tag

           Summary: Wrong code generated when using optional "name"
                    attribute of input tag
           Product: Axis
           Version: current (nightly)
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: WSDL processing
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Axis version: nightly download from June, 23.
JDK 1.3.1-b24

During generation of the client-side files from a WSDL file I spotted
a problem. WSDL2Java generates wrong code from the following WSDL
(modified GetQuote example, modifications marked with comment). The
only change I did: use the optional name attribute on the input tag in
the operation section of the binding paragraph. 

Calling WSDL2Java without any options produces the usual 4
files. However, the GetQuote interface reads:

public interface GetQuote extends java.rmi.Remote {
    public float getQuote(java.lang.String symbol) throws 
java.rmi.RemoteException;
    public void getQuote() throws java.rmi.RemoteException;

Note the additional and wrong getQuote() definition. This also 
causes a wrong GetQuoteBindingStub that does not omplement the 
correct getQuote(float) method. 
Another interessting fact: the original GetQuote WSDL file also
contains a Test method definition for notification. If this is 
left in, the error does _not_ ooccur. You have to delete the 
Test method, operation and bindings.

<?xml version="1.0" ?>

<definitions name="urn:GetQuote" 
             targetNamespace="urn:xmltoday-delayed-quotes"
             xmlns:tns="urn:xmltoday-delayed-quotes"
             xmlns:xsd="http://www.w3.org/1999/XMLSchema";
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
             xmlns="http://schemas.xmlsoap.org/wsdl/";>

  <!-- message declns -->
  <message name="GetQuoteRequest">
    <part name="symbol" type="xsd:string"/>
  </message>

  <message name="GetQuoteResponse">
    <part name="result" type="xsd:float"/>
  </message>

  <!-- port type declns -->
  <portType name="GetQuote">
    <operation name="getQuote" >
      <input  message="tns:GetQuoteRequest"/>
      <output message="tns:GetQuoteResponse"/>
    </operation>
  </portType>

  <!-- binding declns -->
  <binding name="GetQuoteBinding" type="tns:GetQuote">
    <soap:binding style="rpc" 
                  transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getQuote">
      <soap:operation soapAction="getQuote"/>
      <input name="justName">   ****** here is the difference ****
        <soap:body use="encoded" 
                   namespace="urn:xmltoday-delayed-quotes" 
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" 
                   namespace="urn:xmltoday-delayed-quotes"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
  </binding>

  <!-- service decln -->
  <service name="GetQuoteService">
    <port name="GetQuote" binding="tns:GetQuoteBinding">
      <soap:address location="http://localhost:8080/axis/servlet/AxisServlet"/>
    </port>
  </service>

</definitions>

regards,
Werner

Reply via email to