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