wsconsume cannot use JBoss-derived schema
gryffin May 21, 2007 5:52 PMI built a web service using a wsdl. THis wsdl imports a schema that defines types used by the schema in the wsdl. wsconsume builds the types just fine, the namespaces appear to work out.
I deploy the service and discover that there JBoss wrote a new wsdl that incorporated the types document, but upon deployment JBoss cannot unravel it's own wsdl to figure out some of the type definitions.
How do I change my deployment to get JBoss to avoid this trap? Thanks.
Here are the console log entries:
14:23:59,305 ERROR [JBossXSErrorHandler] JBossWS_www.com_NLS_ns_soapTypes43545.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'ns1:Device'to a(n) 'element declaration' component. 14:23:59,305 ERROR [JBossXSErrorHandler] JBossWS_www.com_NLS_ns_soapTypes43545.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'ns1:AssetDisplayName' to a(n) 'element declaration' component. 14:23:59,305 ERROR [JBossXSErrorHandler] JBossWS_www.com_NLS_ns_soapTypes43545.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'ns1:AssetCategory' to a(n) 'element declaration' component. 14:23:59,305 ERROR [JBossXSErrorHandler] JBossWS_www.com_NLS_ns_soapTypes43545.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'ns1:AssetDescription' to a(n) 'element declaration' component. 14:23:59,305 ERROR [JBossXSErrorHandler] JBossWS_www.com_NLS_ns_soapTypes43545.xsd[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: Cannot resolve the name 'ns1:AssetSuspended' to a(n) 'element declaration' component. 14:23:59,461 INFO [TomcatDeployer] deploy, ctxPath=/NetworkLocationService3, warUrl=.../tmp/deploy/tmp43543NetworkLocationService3-exp.war/ 14:23:59,664 INFO [WSDLFilePublisher] WSDL published to: file:/C:/jboss-4.0.5.GA/server/default/data/wsdl/NetworkLocationService3.war/NetworkLocationService43544.wsdl
Here's the resultant WSDL:
<definitions name='NetworkLocationService' targetNamespace='http://www.com/NLS/soap' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='http://www.com/NLS/ns/soapTypes' xmlns:ns2='http://www.com/NLS/ns/Types' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://www.com/NLS/soap' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <types> <xs:schema targetNamespace='http://www.com/NLS/ns/soapTypes' version='1.0' xmlns:ns1='http://www.com/NLS/ns/Types' xmlns:tns='http://www.com/NLS/ns/soapTypes' xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:import namespace='http://www.com/NLS/ns/Types'/> <xs:complexType name='AssetSelector'> <xs:sequence> <xs:element form='qualified' name='AssetId' type='xs:string'/> <xs:element form='qualified' name='OwnerAppId' type='xs:string'/> </xs:sequence> </xs:complexType> <xs:complexType name='AssetAssociationGetResults'> <xs:sequence> <xs:element form='qualified' name='AssociationReturnCode' type='tns:AssociationReturnCode'/> <xs:element form='qualified' name='AssociationValues' type='tns:AssociationValues'/> </xs:sequence> <xs:attribute name='Version' type='xs:string' use='required'/> </xs:complexType> <xs:complexType name='AssociationReturnCode'> <xs:sequence> <xs:element form='qualified' name='Success' type='xs:boolean'/> <xs:element form='qualified' minOccurs='0' name='Reason' type='xs:string'/> </xs:sequence> </xs:complexType> <xs:complexType name='AssociationValues'> <xs:sequence> <xs:element form='qualified' name='DeviceData'> <xs:complexType> <xs:sequence> <xs:element maxOccurs='unbounded' ref='ns1:Device'/> </xs:sequence> <xs:attribute name='Version' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element form='qualified' name='AssetData'> <xs:complexType> <xs:sequence> <xs:element ref='ns1:AssetDisplayName'/> <xs:element maxOccurs='unbounded' ref='ns1:AssetCategory'/> <xs:element ref='ns1:AssetDescription'/> <xs:element ref='ns1:AssetSuspended'/> </xs:sequence> <xs:attribute name='AssetId' type='xs:string' use='required'/> <xs:attribute name='OwnerAppId' type='xs:string'/> <xs:attribute name='Version' type='xs:string' use='required'/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name='CreateDeviceAssociations' type='xs:string'/> <xs:attribute name='DeleteOtherDeviceAssociations' type='xs:boolean'/> </xs:complexType> </xs:schema> <xs:schema elementFormDefault='qualified' targetNamespace='http://www.com/NLS/ns/Types' version='1.0' xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:element name='AssetData'> <xs:complexType> <xs:sequence> <xs:element name='AssetDisplayName' type='xs:string'/> <xs:element maxOccurs='unbounded' name='AssetCategory' type='xs:string'/> <xs:element name='AssetDescription' type='xs:string'/> <xs:element name='AssetSuspended' type='xs:boolean'/> </xs:sequence> <xs:attribute name='AssetId' type='xs:string' use='required'/> <xs:attribute name='OwnerAppId' type='xs:string'/> <xs:attribute name='Version' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element name='DeviceData'> <xs:complexType> <xs:sequence> <xs:element maxOccurs='unbounded' name='Device'> <xs:complexType> <xs:sequence> <xs:element minOccurs='0' name='AeroScoutTag'> <xs:complexType> <xs:sequence> <xs:element minOccurs='0' name='BatteryStatus' type='xs:string'/> </xs:sequence> <xs:attribute name='MacId' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element minOccurs='0' name='NetworkDevice'> <xs:complexType> <xs:sequence> <xs:element minOccurs='0' name='DnsName' type='xs:string'/> <xs:element minOccurs='0' name='Ip4Address' type='xs:string'/> <xs:element minOccurs='0' name='AuthenticationStatus' type='xs:string'/> </xs:sequence> <xs:attribute name='MacId' type='xs:string' use='required'/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name='Version' type='xs:string' use='required'/> </xs:complexType> </xs:element> </xs:schema> </types> <message name='NetworkLocationService_assetAssociationGetResponse'> <part name='return' type='ns1:AssetAssociationGetResults'/> </message> <message name='NetworkLocationService_assetAssociationGet'> <part name='arg0' type='ns1:AssetSelector'/> </message> <message name='NetworkLocationService_assetAssociationSetResponse'> <part name='return' type='ns1:AssociationReturnCode'/> </message> <message name='NetworkLocationService_assetAssociationSet'> <part name='arg0' type='ns1:AssetSelector'/> <part name='arg1' type='ns1:AssociationValues'/> </message> <portType name='NetworkLocationService'> <operation name='assetAssociationGet' parameterOrder='arg0'> <input message='tns:NetworkLocationService_assetAssociationGet'/> <output message='tns:NetworkLocationService_assetAssociationGetResponse'/> </operation> <operation name='assetAssociationSet' parameterOrder='arg0 arg1'> <input message='tns:NetworkLocationService_assetAssociationSet'/> <output message='tns:NetworkLocationService_assetAssociationSetResponse'/> </operation> </portType> <binding name='NetworkLocationServiceBinding' type='tns:NetworkLocationService'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='assetAssociationGet'> <soap:operation soapAction=''/> <input> <soap:body namespace='http://www.com/NLS/soap' use='literal'/> </input> <output> <soap:body namespace='http://www.com/NLS/soap' use='literal'/> </output> </operation> <operation name='assetAssociationSet'> <soap:operation soapAction=''/> <input> <soap:body namespace='http://www.com/NLS/soap' use='literal'/> </input> <output> <soap:body namespace='http://www.com/NLS/soap' use='literal'/> </output> </operation> </binding> <service name='NetworkLocationService'> <port binding='tns:NetworkLocationServiceBinding' name='NetworkLocationServicePort'> <soap:address location='http://E028315:8080/NetworkLocationService3'/> </port> </service> </definitions>