Type definition exception (bug?)
sbalmos Jul 20, 2006 4:16 PMHi everyone,
I believe this is an issue with how WSDL files are written by the JSR-181 deployer. I have a function that returns a class User, which is a subclass of class SecurityEntity. The deployer gives the following Exception:
16:11:29,332 ERROR [JBossXSErrorHandler] JBossWS_soap.snx.simunex.com_jaws38822.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'tns:SecurityEntity' to a(n) 'type definition' component. 16:11:29,352 ERROR [JBossXSErrorHandler] [domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'tns:SecurityEntity' to a(n) 'type definition' component. 16:11:29,362 ERROR [JBossXSErrorHandler] [domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'tns:SecurityEntity' to a(n) 'type definition' component. ... 16:11:35,140 ERROR [MainDeployer] Could not start deployment: file:/C:/Program Files/jboss-4.0.4.GA/server/default/tmp/deploy/tmp38818SimuNex-Backend.ear-contents/soap.jar org.jboss.ws.WSException: Element securityEntityID found in jaxrpc-mapping but not in the schema: {http://soap.snx.simunex.com/jaws}User
But if you look in the WSDL file for the service, User is correctly defined as an extension of SecurityEntity, and SecurityEntity does have a securityEntityID field. It's just that SecurityEntity is defined *after* User. See below:
<schema elementFormDefault='qualified' targetNamespace='http://soap.snx.simunex.com/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns1='http://types.core.snx.simunex.com/jaws' xmlns:ns3='http://util.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://soap.snx.simunex.com/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <import namespace='http://types.core.snx.simunex.com/jaws'/> <import namespace='http://util.java/jaws'/> <complexType name='Map'> <sequence> <element name='empty' type='boolean'/> </sequence> </complexType> <complexType name='User'> <complexContent> <extension base='tns:SecurityEntity'> <sequence> <element name='active' type='boolean'/> <element name='age' type='int'/> <element name='emailAddress' nillable='true' type='string'/> <element name='firstName' nillable='true' type='string'/> <element name='joinDate' nillable='true' type='dateTime'/> <element name='lastName' nillable='true' type='string'/> <element name='locale' nillable='true' type='ns3:Locale'/> <element name='memberOfGroups' nillable='true' type='ns3:Set'/> <element name='userName' nillable='true' type='string'/> </sequence> </extension> </complexContent> </complexType> </schema> <schema elementFormDefault='qualified' targetNamespace='http://types.core.snx.simunex.com/jaws' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:ns2='http://soap.snx.simunex.com/jaws' xmlns:ns3='http://util.java/jaws' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://types.core.snx.simunex.com/jaws' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <import namespace='http://soap.snx.simunex.com/jaws'/> <import namespace='http://util.java/jaws'/> <complexType name='SecurityEntity'> <sequence> <element name='securityEntityID' nillable='true' type='long'/> </sequence> </complexType> </schema>
Is this a bug in the deployer or such? Thanks!
--Scott