Yes, it is a bad idea, but it is allowed and Axis should do the right thing….

 

Tom Jordahl
Macromedia Server Development


From: Bill Keese [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 03, 2005 7:23 PM
To: [email protected]
Subject: Re: Problem with inheritance Axis1_2 RC3

 

Isn't it a bad idea to have a complexType with two elements of the same name (but NOT representing an array)?

Davanum Srinivas wrote:

Please open a bug report and then upload the complete wsdl file.
 
thanks,
dims
 
 
On Thu, 3 Mar 2005 22:32:43 +0100 (CET), Niclas Gustafsson
<[EMAIL PROTECTED]> wrote:
  

Hi,
 
I'm having some trouble compiling code generated by Axis 1.2 RC3 from my
WSDL-file.
 
It's quite obvious what's causing the compile to fail, two arguments with
the same name (cause1) to the constructor, not really a good idea. ;)
 
Is this a bug or am I'm doing something really wrong here?
 
...
 
package com.webmethods.www._package.electric_soap;
 
public class SOAPException  extends
com.webmethods.www.exceptions.Exception  implements java.io.Serializable {
    private java.lang.String code;
    private java.lang.String actor;
    private exml.Element detail;
    private com.webmethods.www.exceptions.Throwable cause1;
    private boolean autoRethrow;
 
    public SOAPException() {
    }
 
    public SOAPException(
           java.lang.String detailMessage,
           java.lang.String stackTrace1,
           java.lang.Object cause1,
           java.lang.String code,
           java.lang.String actor,
           exml.Element detail,
           com.webmethods.www.exceptions.Throwable cause1,
           boolean autoRethrow) {
        super(
            detailMessage,
            stackTrace1,
            cause1);
        this.code = code;
        this.actor = actor;
        this.detail = detail;
        this.cause1 = cause1;
        this.autoRethrow = autoRethrow;
    }
..................................................
 
Axis 1.1 constructor of same class:
 
..................................................
 
    public SOAPException(
           java.lang.String _throwable_detailMessage,
           java.lang.String _throwable_stackTrace,
           java.lang.Object _throwable_cause,
           java.lang.String code,
           java.lang.String actor,
           exml.Element detail,
           com.webmethods.www.exceptions.Throwable cause,
           boolean autoRethrow) {
        super(
            _throwable_detailMessage,
            _throwable_stackTrace,
            _throwable_cause);
        this.code = code;
        this.actor = actor;
        this.detail = detail;
        this.cause = cause;
        this.autoRethrow = autoRethrow;
    }
..............
 
............
WSDL fragment:
   <xsd:schema
targetNamespace='http://www.webmethods.com/package/electric.soap/'>
      <xsd:import namespace='http://exml/'/>
      <xsd:import namespace='http://www.webmethods.com/exceptions/'/>
      <xsd:complexType name='SOAPException'>
        <xsd:complexContent>
          <xsd:extension base='n6:exception'>
            <xsd:all>
              <xsd:element name='code' nillable='true' type='xsd:string'/>
              <xsd:element name='actor' nillable='true' type='xsd:string'/>
              <xsd:element name='detail' nillable='true' type='n7:element'/>
              <xsd:element name='cause' nillable='true' type='n6:throwable'/>
              <xsd:element name='autoRethrow' type='xsd:boolean'/>
            </xsd:all>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
    </xsd:schema>
 
...
  <xsd:schema targetNamespace='http://www.webmethods.com/exceptions/'>
      <xsd:complexType name='throwable'>
        <xsd:all>
          <xsd:element name='detailMessage' type='xsd:string'
nillable='true'/>
          <xsd:element name='stackTrace' type='xsd:string' minOccurs='0'/>
          <xsd:element name='cause' type='xsd:anyType' minOccurs='0'/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name='exception'>
        <xsd:complexContent>
          <xsd:extension base='n6:throwable'/>
        </xsd:complexContent>
      </xsd:complexType>
    </xsd:schema>
...
 
Regards,
 
Niclas Gustafsson
 
 
    
 
 
  

Reply via email to