[jbossws-issues] [JBoss JIRA] Created: (JBWS-1446) WSDL includes numerous core java elements when a parameter of type Object is part of a webmethod

Jay Cowan (JIRA) jira-events at jboss.com
Thu Jan 11 14:31:26 EST 2007


WSDL includes numerous core java elements when a parameter of type Object is part of a webmethod
------------------------------------------------------------------------------------------------

                 Key: JBWS-1446
                 URL: http://jira.jboss.com/jira/browse/JBWS-1446
             Project: JBoss Web Services
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: jbossws-2.0.0.CR1
         Environment: jboss AS 4.0.5 GA, Windows XP and Fedora Core 5
            Reporter: Jay Cowan


When passing or returning a parameter of type java.lang.Object, the generated wsdl includes scheam information for the Object type and everything nested within:

@WebMethod
    public String GetString(String _string) {
        return _string;
    }

@WebMethod
    public Object GetObject( Object obj ){
        return obj;
    }

produces the following type definitions within the wsdl:

 <types>
  <schema elementFormDefault='qualified' targetNamespace='http://reflect.lang.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://reflect.lang.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='Constructor'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredAnnotations' nillable='true' type='ns3:Annotation'/>
     <element name='declaringClass' nillable='true' type='ns2:Class'/>
     <element maxOccurs='unbounded' minOccurs='0' name='exceptionTypes' nillable='true' type='ns2:Class'/>
     <element maxOccurs='unbounded' minOccurs='0' name='genericExceptionTypes' nillable='true' type='tns:Type'/>
     <element maxOccurs='unbounded' minOccurs='0' name='genericParameterTypes' nillable='true' type='tns:Type'/>
     <element name='modifiers' type='int'/>
     <element name='name' nillable='true' type='string'/>
     <element maxOccurs='unbounded' minOccurs='0' name='parameterAnnotations' nillable='true' type='ns3:Annotation.Array'/>
     <element maxOccurs='unbounded' minOccurs='0' name='parameterTypes' nillable='true' type='ns2:Class'/>
     <element name='synthetic' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='typeParameters' nillable='true' type='tns:TypeVariable'/>
     <element name='varArgs' type='boolean'/>
    </sequence>
   </complexType>
   <complexType name='Field'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredAnnotations' nillable='true' type='ns3:Annotation'/>
     <element name='declaringClass' nillable='true' type='ns2:Class'/>
     <element name='enumConstant' type='boolean'/>
     <element name='genericType' nillable='true' type='tns:Type'/>
     <element name='modifiers' type='int'/>
     <element name='name' nillable='true' type='string'/>
     <element name='synthetic' type='boolean'/>
     <element name='type' nillable='true' type='ns2:Class'/>
    </sequence>
   </complexType>
   <complexType name='GenericDeclaration'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='typeParameters' nillable='true' type='tns:TypeVariable'/>
    </sequence>
   </complexType>
   <complexType name='Method'>
    <sequence>
     <element name='bridge' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredAnnotations' nillable='true' type='ns3:Annotation'/>
     <element name='declaringClass' nillable='true' type='ns2:Class'/>
     <element name='defaultValue' nillable='true' type='ns1:Object'/>
     <element maxOccurs='unbounded' minOccurs='0' name='exceptionTypes' nillable='true' type='ns2:Class'/>
     <element maxOccurs='unbounded' minOccurs='0' name='genericExceptionTypes' nillable='true' type='tns:Type'/>
     <element maxOccurs='unbounded' minOccurs='0' name='genericParameterTypes' nillable='true' type='tns:Type'/>
     <element name='genericReturnType' nillable='true' type='tns:Type'/>
     <element name='modifiers' type='int'/>
     <element name='name' nillable='true' type='string'/>
     <element maxOccurs='unbounded' minOccurs='0' name='parameterAnnotations' nillable='true' type='ns3:Annotation.Array'/>
     <element maxOccurs='unbounded' minOccurs='0' name='parameterTypes' nillable='true' type='ns2:Class'/>
     <element name='returnType' nillable='true' type='ns2:Class'/>
     <element name='synthetic' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='typeParameters' nillable='true' type='tns:TypeVariable'/>
     <element name='varArgs' type='boolean'/>
    </sequence>
   </complexType>
   <complexType name='Type'>
    <sequence/>
   </complexType>
   <complexType name='TypeVariable'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='bounds' nillable='true' type='tns:Type'/>
     <element name='genericDeclaration' nillable='true' type='tns:GenericDeclaration'/>
     <element name='name' nillable='true' type='string'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://annotation.lang.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://annotation.lang.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='Annotation'>
    <sequence/>
   </complexType>
   <complexType name='Annotation.Array'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='value' nillable='true' type='tns:Annotation'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://cert.security.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://cert.security.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='CertPath'>
    <sequence>
     <element name='certificates' nillable='true' type='ns8:List'/>
     <element name='encoded' nillable='true' type='base64Binary'/>
     <element name='encodings' nillable='true' type='ns8:Iterator'/>
     <element name='type' nillable='true' type='string'/>
    </sequence>
   </complexType>
   <complexType name='Certificate'>
    <sequence>
     <element name='encoded' nillable='true' type='base64Binary'/>
     <element name='publicKey' nillable='true' type='ns5:PublicKey'/>
     <element name='type' nillable='true' type='string'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://lang.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://lang.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='Class'>
    <sequence>
     <element name='annotation' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='annotations' nillable='true' type='ns3:Annotation'/>
     <element name='anonymousClass' type='boolean'/>
     <element name='array' type='boolean'/>
     <element name='canonicalName' nillable='true' type='string'/>
     <element name='classLoader' nillable='true' type='tns:ClassLoader'/>
     <element maxOccurs='unbounded' minOccurs='0' name='classes' nillable='true' type='tns:Class'/>
     <element name='componentType' nillable='true' type='tns:Class'/>
     <element maxOccurs='unbounded' minOccurs='0' name='constructors' nillable='true' type='ns4:Constructor'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredAnnotations' nillable='true' type='ns3:Annotation'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredClasses' nillable='true' type='tns:Class'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredConstructors' nillable='true' type='ns4:Constructor'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredFields' nillable='true' type='ns4:Field'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredMethods' nillable='true' type='ns4:Method'/>
     <element name='declaringClass' nillable='true' type='tns:Class'/>
     <element name='enclosingClass' nillable='true' type='tns:Class'/>
     <element name='enclosingConstructor' nillable='true' type='ns4:Constructor'/>
     <element name='enclosingMethod' nillable='true' type='ns4:Method'/>
     <element name='enum' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='enumConstants' nillable='true' type='ns1:Object'/>
     <element maxOccurs='unbounded' minOccurs='0' name='fields' nillable='true' type='ns4:Field'/>
     <element maxOccurs='unbounded' minOccurs='0' name='genericInterfaces' nillable='true' type='ns4:Type'/>
     <element name='genericSuperclass' nillable='true' type='ns4:Type'/>
     <element name='interface' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='interfaces' nillable='true' type='tns:Class'/>
     <element name='localClass' type='boolean'/>
     <element name='memberClass' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='methods' nillable='true' type='ns4:Method'/>
     <element name='modifiers' type='int'/>
     <element name='name' nillable='true' type='string'/>
     <element name='package' nillable='true' type='tns:Package'/>
     <element name='primitive' type='boolean'/>
     <element name='protectionDomain' nillable='true' type='ns5:ProtectionDomain'/>
     <element maxOccurs='unbounded' minOccurs='0' name='signers' nillable='true' type='ns1:Object'/>
     <element name='simpleName' nillable='true' type='string'/>
     <element name='superclass' nillable='true' type='tns:Class'/>
     <element name='synthetic' type='boolean'/>
     <element maxOccurs='unbounded' minOccurs='0' name='typeParameters' nillable='true' type='ns4:TypeVariable'/>
    </sequence>
   </complexType>
   <complexType name='ClassLoader'>
    <sequence>
     <element name='defaultAssertionStatus' type='boolean'/>
     <element name='parent' nillable='true' type='tns:ClassLoader'/>
    </sequence>
   </complexType>
   <complexType name='Package'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='annotations' nillable='true' type='ns3:Annotation'/>
     <element maxOccurs='unbounded' minOccurs='0' name='declaredAnnotations' nillable='true' type='ns3:Annotation'/>
     <element name='implementationTitle' nillable='true' type='string'/>
     <element name='implementationVendor' nillable='true' type='string'/>
     <element name='implementationVersion' nillable='true' type='string'/>
     <element name='name' nillable='true' type='string'/>
     <element name='sealed' type='boolean'/>
     <element name='specificationTitle' nillable='true' type='string'/>
     <element name='specificationVendor' nillable='true' type='string'/>
     <element name='specificationVersion' nillable='true' type='string'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://testws.ycc.yale.edu/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://testws.ycc.yale.edu/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='Object'>
    <sequence>
     <element name='class' nillable='true' type='ns2:Class'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://security.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://security.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='CodeSigner'>
    <sequence>
     <element name='signerCertPath' nillable='true' type='ns6:CertPath'/>
     <element name='timestamp' nillable='true' type='tns:Timestamp'/>
    </sequence>
   </complexType>
   <complexType name='CodeSource'>
    <sequence>
     <element maxOccurs='unbounded' minOccurs='0' name='certificates' nillable='true' type='ns6:Certificate'/>
     <element maxOccurs='unbounded' minOccurs='0' name='codeSigners' nillable='true' type='tns:CodeSigner'/>
     <element name='location' nillable='true' type='ns9:URL'/>
    </sequence>
   </complexType>
   <complexType name='PermissionCollection'>
    <sequence>
     <element name='readOnly' type='boolean'/>
    </sequence>
   </complexType>
   <complexType name='Principal'>
    <sequence>
     <element name='name' nillable='true' type='string'/>
    </sequence>
   </complexType>
   <complexType name='ProtectionDomain'>
    <sequence>
     <element name='classLoader' nillable='true' type='ns2:ClassLoader'/>
     <element name='codeSource' nillable='true' type='tns:CodeSource'/>
     <element name='permissions' nillable='true' type='tns:PermissionCollection'/>
     <element maxOccurs='unbounded' minOccurs='0' name='principals' nillable='true' type='tns:Principal'/>
    </sequence>
   </complexType>
   <complexType name='PublicKey'>
    <sequence/>
   </complexType>
   <complexType name='Timestamp'>
    <sequence>
     <element name='signerCertPath' nillable='true' type='ns6:CertPath'/>
     <element name='timestamp' nillable='true' type='dateTime'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://net.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns8='http://util.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://net.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://util.java/jaws'/>
   <complexType name='URL'>
    <sequence>
     <element name='authority' nillable='true' type='string'/>
     <element name='content' nillable='true' type='ns1:Object'/>
     <element name='defaultPort' type='int'/>
     <element name='file' nillable='true' type='string'/>
     <element name='host' nillable='true' type='string'/>
     <element name='path' nillable='true' type='string'/>
     <element name='port' type='int'/>
     <element name='protocol' nillable='true' type='string'/>
     <element name='query' nillable='true' type='string'/>
     <element name='ref' nillable='true' type='string'/>
     <element name='userInfo' nillable='true' type='string'/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault='qualified' targetNamespace='http://util.java/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://testws.ycc.yale.edu/jaws' xmlns:ns2='http://lang.java/jaws' xmlns:ns3='http://annotation.lang.java/jaws' xmlns:ns4='http://reflect.lang.java/jaws' xmlns:ns5='http://security.java/jaws' xmlns:ns6='http://cert.security.java/jaws' xmlns:ns7='http://www.w3.org/2001/XMLSchema' xmlns:ns9='http://net.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://util.java/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <import namespace='http://reflect.lang.java/jaws'/>
   <import namespace='http://cert.security.java/jaws'/>
   <import namespace='http://annotation.lang.java/jaws'/>
   <import namespace='http://www.w3.org/2001/XMLSchema'/>
   <import namespace='http://lang.java/jaws'/>
   <import namespace='http://testws.ycc.yale.edu/jaws'/>
   <import namespace='http://security.java/jaws'/>
   <import namespace='http://net.java/jaws'/>
   <complexType name='Iterator'>
    <sequence/>
   </complexType>
   <complexType name='List'>
    <sequence>
     <element name='empty' type='boolean'/>
    </sequence>
   </complexType>
  </schema>
 </types>
 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbossws-issues mailing list