Anne, thanks for the help. I need to educate myself a bit more on WSDL and WS best practices. Do you recommend a site or book? Also, do you recommend using Collections rather than Arrays for interoperability in general? Arrays seem to be a common interop problem from what I've been reading.
Thanks again, Gary -----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Sunday, April 03, 2005 8:08 AM To: [email protected] Subject: Re: DotNet interoperability problem with 1.2rc3... That's what you get for generating WSDL from code. It's a bad idea. Axis put all the array definitions into a single schema: (<schema elementFormDefault="qualified" targetNamespace="http://localhost:8080/axis/services/TestCenterService" xmlns="http://www.w3.org/2001/XMLSchema">). And by default, Axis created wrapped arrays, where the wrapper element is called "item". This wouldn't be a problem, except that the schema specifies elementFormDefault="qualified", so now you have a bunch of qualified elements called "item", and they causes your error. You need to edit your WSDL and regenerate your code. I suggest you use unwrapped arrays rather than wrapped arrays. Please see Dino's wiki entry on arrays: http://wiki.apache.org/ws/DotNetInteropArrays - Anne On Apr 2, 2005 3:49 AM, Damm, Gary <[EMAIL PROTECTED]> wrote: > > > > Hello, I am getting the error below from a .net client. It was > autogenerated using the wsdl below. I am using axis 1.2rc3. Has anyone > seen this problem? What is the fix? > > > > It appears that all of the elements for the target namespace > "http://localhost:8080/axis/services/TestCenterService" > have the name attribute set to "item". But I'm not sure how to affect this > without manually editing the file which I'd rather not do. > > > > I am deploying this using the following wsdd, <service > name="TestCenterService" provider="java:RPC" style="wrapped" use="literal" > >. I have also tried style="document" with the same results. I also tried > not setting the style and use attributes and received problems from DotNet > with the String[]'s I am using. > > > > Thanks in advance for any help. > > > > Unhandled Exception: System.InvalidOperationException: > There was an error reflec > > ting type 'ConsoleApplication1.localhost.Response'. ---> > System.InvalidOperation > > Exception: There was an error reflecting type > 'ConsoleApplication1.localhost.Use > > rResponse'. ---> System.InvalidOperationException: There > was an error reflecting > > field 'users'. ---> System.InvalidOperationException: The > XML element named 'it > > em' from namespace > 'http://localhost:8080/axis/services/TestCenterService' > refer > > ences distinct types System.String and > ConsoleApplication1.localhost.CompanyUser > > . Use XML attributes to specify another XML name or namespace for the > element or > > types. > > at > System.Xml.Serialization.XmlReflectionImporter.ReconcileAccessor(Element Ac > > cessor accessor) > > at > System.Xml.Serialization.XmlReflectionImporter.ImportArrayLikeMapping(Ar ra > > yModel model, String ns) > > ... > > > > <?xml version="1.0" encoding="UTF-8"?> > > <wsdl:definitions > targetNamespace="http://localhost:8080/axis/services/TestCenterService" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:impl="http://localhost:8080/axis/services/TestCenterService" > xmlns:intf="http://localhost:8080/axis/services/TestCenterService" > xmlns:tns1="http://impl.webservice.qdc.foobar.com" > xmlns:tns2="urn:com.foobar.qdc.webservice.data.item" > xmlns:tns3="urn:com.foobar.qdc.webservice.data.platform" > xmlns:tns4="http://data.webservice.qdc.foobar.com" > xmlns:tns5="urn:com.foobar.qdc.webservice.data.reference" > xmlns:tns6="urn:com.foobar.qdc.webservice.data.organization" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <!--WSDL created by Apache Axis version: 1.2RC3 > > Built on Feb 28, 2005 (10:15:14 EST)--> > > <wsdl:types> > > <schema elementFormDefault="qualified" > targetNamespace="http://impl.webservice.qdc.foobar.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="http://localhost:8080/axis/services/TestCenterService"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.reference"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.item"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.platform"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <import > namespace="http://data.webservice.qdc.foobar.com"/> > > <element name="getSupportedDevices"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="getSupportedDevicesResponse"> > > <complexType> > > <sequence> > > <element name="getSupportedDevicesReturn" > type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="submitItem"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="submitItemResponse"> > > <complexType> > > <sequence> > > <element name="submitItemReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchReferenceDomains"> > > <complexType> > > <sequence> > > <element name="request" > type="tns5:ReferenceDomainRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchReferenceDomainsResponse"> > > <complexType> > > <sequence> > > <element name="searchReferenceDomainsReturn" > type="tns5:ReferenceDomainResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchUsers"> > > <complexType> > > <sequence> > > <element name="request" type="tns6:UserRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchUsersResponse"> > > <complexType> > > <sequence> > > <element name="searchUsersReturn" type="tns6:UserResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchCompanies"> > > <complexType> > > <sequence> > > <element name="companyRequest" type="tns6:CompanyRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchCompaniesResponse"> > > <complexType> > > <sequence> > > <element name="searchCompaniesReturn" type="tns6:CompanyResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchDevices"> > > <complexType> > > <sequence> > > <element name="request" type="tns3:DeviceRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchDevicesResponse"> > > <complexType> > > <sequence> > > <element name="searchDevicesReturn" type="tns3:DeviceResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchItems"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="searchItemsResponse"> > > <complexType> > > <sequence> > > <element name="searchItemsReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="getDocuments"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="getDocumentsResponse"> > > <complexType> > > <sequence> > > <element name="getDocumentsReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="addDocuments"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="addDocumentsResponse"> > > <complexType> > > <sequence> > > <element name="addDocumentsReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="deleteDocuments"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="deleteDocumentsResponse"> > > <complexType> > > <sequence> > > <element name="deleteDocumentsReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="getLanguages"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="getLanguagesResponse"> > > <complexType> > > <sequence> > > <element name="getLanguagesReturn" type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="addSupportedDevices"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="addSupportedDevicesResponse"> > > <complexType> > > <sequence> > > <element name="addSupportedDevicesReturn" > type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="updateSupportedDevices"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="updateSupportedDevicesResponse"> > > <complexType> > > <sequence> > > <element name="updateSupportedDevicesReturn" > type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > <element name="deleteSupportedDevices"> > > <complexType> > > <sequence> > > <element name="request" type="tns2:ItemRequest"/> > > </sequence> > > </complexType> > > </element> > > <element name="deleteSupportedDevicesResponse"> > > <complexType> > > <sequence> > > <element name="deleteSupportedDevicesReturn" > type="tns2:ItemResponse"/> > > </sequence> > > </complexType> > > </element> > > </schema> > > <schema elementFormDefault="qualified" > targetNamespace="urn:com.foobar.qdc.webservice.data.item" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="http://localhost:8080/axis/services/TestCenterService"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.reference"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.platform"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <import > namespace="http://data.webservice.qdc.foobar.com"/> > > <complexType name="BrewItemDocument"> > > <sequence> > > <element name="data" nillable="true" type="xsd:base64Binary"/> > > <element name="description" nillable="true" type="xsd:string"/> > > <element name="docId" type="xsd:long"/> > > <element name="itemId" type="xsd:long"/> > > <element name="name" nillable="true" type="xsd:string"/> > > <element name="source" nillable="true" type="xsd:string"/> > > <element name="type" type="xsd:int"/> > > <element name="url" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="SupportedDevice"> > > <complexContent> > > <extension base="tns3:Device"> > > <sequence> > > <element name="itemId" type="xsd:long"/> > > <element name="readyToDistribute" nillable="true" type="xsd:string"/> > > <element name="status" nillable="true" type="xsd:string"/> > > <element name="type" nillable="true" type="xsd:string"/> > > </sequence> > > </extension> > > </complexContent> > > </complexType> > > <complexType name="ItemRequest"> > > <sequence> > > <element name="brewItemDocuments" nillable="true" > type="impl:ArrayOf_tns2_BrewItemDocument"/> > > <element name="itemId" type="xsd:long"/> > > <element name="itemSubmissionZip" nillable="true" > type="xsd:base64Binary"/> > > <element name="manufacturer" nillable="true" type="xsd:string"/> > > <element name="name" nillable="true" type="xsd:string"/> > > <element name="supportedDevices" nillable="true" > type="impl:ArrayOf_tns2_SupportedDevice"/> > > <element name="version" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="BrewItem"> > > <sequence> > > <element name="description" nillable="true" type="xsd:string"/> > > <element name="id" type="xsd:long"/> > > <element name="manufacturer" nillable="true" type="xsd:string"/> > > <element name="name" nillable="true" type="xsd:string"/> > > <element name="version" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="BrewItemLanguage"> > > <sequence> > > <element name="description" nillable="true" type="xsd:string"/> > > <element name="language" nillable="true" type="xsd:string"/> > > <element name="name" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="ItemResponse"> > > <complexContent> > > <extension base="tns4:Response"> > > <sequence> > > <element name="brewDocuments" nillable="true" > type="impl:ArrayOf_tns2_BrewItemDocument"/> > > <element name="brewItems" nillable="true" > type="impl:ArrayOf_tns2_BrewItem"/> > > <element name="brewLanguages" nillable="true" > type="impl:ArrayOf_tns2_BrewItemLanguage"/> > > <element name="supportedDevices" nillable="true" > type="impl:ArrayOf_tns2_SupportedDevice"/> > > </sequence> > > </extension> > > </complexContent> > > </complexType> > > </schema> > > <schema elementFormDefault="qualified" > targetNamespace="http://localhost:8080/axis/services/TestCenterService" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="urn:com.foobar.qdc.webservice.data.reference"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.item"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.platform"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <import > namespace="http://data.webservice.qdc.foobar.com"/> > > <complexType name="ArrayOf_tns2_BrewItemDocument"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns2:BrewItemDocument"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns2_SupportedDevice"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns2:SupportedDevice"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_xsd_string"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns2_BrewItem"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns2:BrewItem"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns2_BrewItemLanguage"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns2:BrewItemLanguage"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns3_ReferenceCode"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns3:ReferenceCode"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns5_ReferenceDomain"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns5:ReferenceDomain"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns6_CompanyUser"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns6:CompanyUser"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns6_Company"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns6:Company"/> > > </sequence> > > </complexType> > > <complexType name="ArrayOf_tns3_Device"> > > <sequence> > > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="tns3:Device"/> > > </sequence> > > </complexType> > > </schema> > > <schema elementFormDefault="qualified" > targetNamespace="urn:com.foobar.qdc.webservice.data.platform" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="http://localhost:8080/axis/services/TestCenterService"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.reference"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.item"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <import > namespace="http://data.webservice.qdc.foobar.com"/> > > <complexType name="Device"> > > <sequence> > > <element name="brewApi" nillable="true" type="xsd:string"/> > > <element name="description" nillable="true" type="xsd:string"/> > > <element name="encoding" nillable="true" type="xsd:string"/> > > <element name="endianFlag" nillable="true" type="xsd:string"/> > > <element name="manufacturer" nillable="true" type="xsd:string"/> > > <element name="model" nillable="true" type="xsd:string"/> > > <element name="name" nillable="true" type="xsd:string"/> > > <element name="platformId" type="xsd:long"/> > > <element name="swRevision" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="ReferenceCode"> > > <sequence> > > <element name="abbreviation" nillable="true" type="xsd:string"/> > > <element name="meaning" nillable="true" type="xsd:string"/> > > <element name="sortOrder" nillable="true" type="xsd:string"/> > > <element name="value" nillable="true" type="xsd:string"/> > > </sequence> > > </complexType> > > <complexType name="DeviceRequest"> > > <complexContent> > > <extension base="tns4:Request"> > > <sequence> > > <element name="deviceName" nillable="true" type="xsd:string"/> > > <element name="platformId" type="xsd:long"/> > > </sequence> > > </extension> > > </complexContent> > > </complexType> > > <complexType name="DeviceResponse"> > > <complexContent> > > <extension base="tns4:Response"> > > <sequence> > > <element name="devices" nillable="true" > type="impl:ArrayOf_tns3_Device"/> > > </sequence> > > </extension> > > </complexContent> > > </complexType> > > </schema> > > <schema elementFormDefault="qualified" > targetNamespace="http://data.webservice.qdc.foobar.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="http://localhost:8080/axis/services/TestCenterService"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.reference"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.item"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.platform"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <complexType abstract="true" name="Response"> > > <sequence> > > <element name="errors" nillable="true" > type="impl:ArrayOf_xsd_string"/> > > <element name="messages" nillable="true" > type="impl:ArrayOf_xsd_string"/> > > </sequence> > > </complexType> > > <complexType abstract="true" name="Request"> > > <sequence> > > <element name="signature" nillable="true" type="xsd:base64Binary"/> > > </sequence> > > </complexType> > > </schema> > > <schema elementFormDefault="qualified" > targetNamespace="urn:com.foobar.qdc.webservice.data.reference" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <import > namespace="http://localhost:8080/axis/services/TestCenterService"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.item"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.platform"/> > > <import > namespace="urn:com.foobar.qdc.webservice.data.organization"/> > > <import > namespace="http://data.webservice.qdc.foobar.com"/> > > <complexType name="ReferenceDomainRequest"> > > <sequence> > > <element name="referenceDomainsToRetrieve" > nillable="true" type="impl:ArrayOf_xsd_string"/> > > <element name="retrieveReferenceDomainNames" > type="xsd:boolean"/> > > </sequence> > > </complexType> > > <complexType name="ReferenceDomain"> > > <sequence> > > <element name="domainName" nillable="true" type="xsd:string"/> > > <element name="referenceCodes" nillable="true" > type="impl:ArrayOf_tns3_ReferenceCode"/> > > </sequence> > > </complexType> > > <complexType name="ReferenceDomainResponse"> > > <complexContent> > > <extension base="tns4:Response"> > > <sequence> > > <element name="referenceDomainNames" nillable="true" > type="impl:ArrayOf_xsd_string"/> > > <element name="referenceDomains" nillable="true" > type="impl:ArrayOf_tns5_ReferenceDomain"/> <p > class=MsoNormal style='t... [Message clipped]
