You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "daniel damon (JIRA)" <ax...@ws.apache.org> on 2005/08/12 19:22:54 UTC

[jira] Updated: (AXIS-2143) Array serialization error with multiple namespaces

     [ http://issues.apache.org/jira/browse/AXIS-2143?page=all ]

daniel damon updated AXIS-2143:
-------------------------------

    Attachment: TestService.wsdl
                TestService.java
                MyBean.java

Attached simplified examples

> Array serialization error with multiple namespaces
> --------------------------------------------------
>
>          Key: AXIS-2143
>          URL: http://issues.apache.org/jira/browse/AXIS-2143
>      Project: Apache Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2.1
>  Environment: Axis 1.2.1 and also latest build of 1.3 running under websphere on windows xp.  JDK 1.3.
>     Reporter: Ken Katsma
>  Attachments: MyBean.java, TestService.java, TestService.wsdl
>
> Tthe problem still exists with multiple namespaces.  For the following wsdl I get an incorrect response of: 
>       <getCoverageTeamByEcidResponse xmlns="http://coverage.pw.services.crm.jpmorgan.com"> 
>             <getCoverageTeamByEcidReturn> 
>                <coverageTeamInfoTO> 
>                   <coverageTeamInfoTO> 
>                      <cvrRoleTmrDs xsi:nil="true"/> 
> Notice the extra TO entry.  It should look like: 
>       <getCoverageTeamByEcidResponse xmlns="http://coverage.pw.services.crm.jpmorgan.com"> 
>             <getCoverageTeamByEcidReturn> 
>                <coverageTeamInfoTO> 
>                   <item> 
>                      <cvrRoleTmrDs xsi:nil="true"/> 
> Here is the wsdl:
> <?xml version="1.0" encoding="UTF-8"?> 
> <wsdl:definitions targetNamespace="http://contact.pw.services.crm.jpmorgan.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://contact.pw.services.crm.jpmorgan.com" xmlns:intf="http://contact.pw.services.crm.jpmorgan.com" xmlns:tns2="http://request.contact.pw.services.crm.jpmorgan.com" xmlns:tns3="http://headers.message.framework.core.crm.jpmorgan.com" xmlns:tns4="http://response.contact.pw.services.crm.jpmorgan.com" xmlns:tns5="http://to.pw.services.crm.jpmorgan.com" 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.3 
> Built on Jul 26, 2005 (04:05:35 GMT+00:00)--> 
>  <wsdl:types> 
>   <schema elementFormDefault="qualified" targetNamespace="http://contact.pw.services.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <import namespace="http://to.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://response.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://headers.message.framework.core.crm.jpmorgan.com"/> 
>    <import namespace="http://request.contact.pw.services.crm.jpmorgan.com"/> 
>    <element name="getContactByEcid"> 
>     <complexType> 
>      <sequence> 
>       <element name="request" type="tns2:GetContactByEcidRequest"/> 
>      </sequence> 
>     </complexType> 
>    </element> 
>    <complexType name="ArrayOf_tns3_SortDetail"> 
>     <sequence> 
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="tns3:SortDetail"/> 
>     </sequence> 
>    </complexType> 
>    <element name="getContactByEcidResponse"> 
>     <complexType> 
>      <sequence> 
>       <element name="getContactByEcidReturn" type="tns4:GetContactByEcidResponse"/> 
>      </sequence> 
>     </complexType> 
>    </element> 
>    <complexType name="ArrayOf_tns3_ErrorIdentifier"> 
>     <sequence> 
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="tns3:ErrorIdentifier"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="ArrayOf_tns5_ClientContactTO"> 
>     <sequence> 
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="tns5:ClientContactTO"/> 
>     </sequence> 
>    </complexType> 
>   </schema> 
>   <schema elementFormDefault="qualified" targetNamespace="http://headers.message.framework.core.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <import namespace="http://to.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://response.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://request.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://contact.pw.services.crm.jpmorgan.com"/> 
>    <complexType name="SortDetail"> 
>     <sequence> 
>      <element name="sortColumn" nillable="true" type="xsd:string"/> 
>      <element name="sortOrder" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="PagingRequestDetail"> 
>     <sequence> 
>      <element name="endRow" type="xsd:int"/> 
>      <element name="maxRow" type="xsd:int"/> 
>      <element name="sortDetail" nillable="true" type="impl:ArrayOf_tns3_SortDetail"/> 
>      <element name="startRow" type="xsd:int"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="RequestHeader"> 
>     <sequence> 
>      <element name="applicationLineOfBusinessRoleIdentifier" nillable="true" type="xsd:string"/> 
>      <element name="requestingAppID" nillable="true" type="xsd:string"/> 
>      <element name="submitTime" nillable="true" type="xsd:string"/> 
>      <element name="trackingID" nillable="true" type="xsd:string"/> 
>      <element name="workerStandardIdentifier" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="Request"> 
>     <sequence> 
>      <element name="pagingRequestDetail" nillable="true" type="tns3:PagingRequestDetail"/> 
>      <element name="requestHeader" nillable="true" type="tns3:RequestHeader"/> 
>      <element name="scope" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="PagingResponseDetail"> 
>     <sequence> 
>      <element name="rowReturned" type="xsd:int"/> 
>      <element name="totalRowAvailable" type="xsd:int"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="ErrorIdentifier"> 
>     <sequence> 
>      <element name="key" nillable="true" type="xsd:string"/> 
>      <element name="value" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="ErrorDetail"> 
>     <sequence> 
>      <element name="applicationErrorCode" nillable="true" type="xsd:string"/> 
>      <element name="applicationErrorID" nillable="true" type="xsd:string"/> 
>      <element name="applicationErrorMsg" nillable="true" type="xsd:string"/> 
>      <element name="errorIdentifier" nillable="true" type="impl:ArrayOf_tns3_ErrorIdentifier"/> 
>      <element name="systemErrorCode" nillable="true" type="xsd:string"/> 
>      <element name="systemErrorMsg" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="ResponseHeader"> 
>     <sequence> 
>      <element name="errorDetail" nillable="true" type="tns3:ErrorDetail"/> 
>      <element name="responseStatus" nillable="true" type="xsd:string"/> 
>      <element name="submitTime" nillable="true" type="xsd:string"/> 
>      <element name="successStatusCode" nillable="true" type="xsd:string"/> 
>      <element name="trackingID" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="Response"> 
>     <sequence> 
>      <element name="pagingResponseDetail" nillable="true" type="tns3:PagingResponseDetail"/> 
>      <element name="responseHeader" nillable="true" type="tns3:ResponseHeader"/> 
>     </sequence> 
>    </complexType> 
>   </schema> 
>   <schema elementFormDefault="qualified" targetNamespace="http://request.contact.pw.services.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <import namespace="http://to.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://response.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://headers.message.framework.core.crm.jpmorgan.com"/> 
>    <import namespace="http://contact.pw.services.crm.jpmorgan.com"/> 
>    <complexType name="GetContactByEcidRequest"> 
>     <complexContent> 
>      <extension base="tns3:Request"> 
>       <sequence> 
>        <element name="ecid" nillable="true" type="xsd:string"/> 
>       </sequence> 
>      </extension> 
>     </complexContent> 
>    </complexType> 
>   </schema> 
>   <schema elementFormDefault="qualified" targetNamespace="http://to.pw.services.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <import namespace="http://response.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://headers.message.framework.core.crm.jpmorgan.com"/> 
>    <import namespace="http://request.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://contact.pw.services.crm.jpmorgan.com"/> 
>    <complexType name="ClientContactTO"> 
>     <sequence> 
>      <element name="addressCity" nillable="true" type="xsd:string"/> 
>      <element name="addressCode" nillable="true" type="xsd:string"/> 
>      <element name="addressCountryCode" nillable="true" type="xsd:string"/> 
>      <element name="addressId" nillable="true" type="xsd:string"/> 
>      <element name="addressLine1" nillable="true" type="xsd:string"/> 
>      <element name="addressLine2" nillable="true" type="xsd:string"/> 
>      <element name="addressLine3" nillable="true" type="xsd:string"/> 
>      <element name="addressPostalCode" nillable="true" type="xsd:string"/> 
>      <element name="addressStateCode" nillable="true" type="xsd:string"/> 
>      <element name="clientId" nillable="true" type="xsd:string"/> 
>      <element name="commEmail" nillable="true" type="xsd:string"/> 
>      <element name="commTypeCode" nillable="true" type="xsd:string"/> 
>      <element name="commTypeId" nillable="true" type="xsd:string"/> 
>      <element name="commWokePhone" nillable="true" type="xsd:string"/> 
>      <element name="commWorkFax" nillable="true" type="xsd:string"/> 
>      <element name="commWorkFaxExt" nillable="true" type="xsd:string"/> 
>      <element name="commWorkPhoneExt" nillable="true" type="xsd:string"/> 
>      <element name="contactDeleteInd" nillable="true" type="xsd:string"/> 
>      <element name="contactFirstName" nillable="true" type="xsd:string"/> 
>      <element name="contactId" nillable="true" type="xsd:string"/> 
>      <element name="contactInactiveInd" nillable="true" type="xsd:string"/> 
>      <element name="contactLastName" nillable="true" type="xsd:string"/> 
>      <element name="contactMiddleName" nillable="true" type="xsd:string"/> 
>      <element name="contactPrefixCode" nillable="true" type="xsd:string"/> 
>      <element name="contactPrimaryInd" nillable="true" type="xsd:string"/> 
>      <element name="contactSalutation" nillable="true" type="xsd:string"/> 
>      <element name="contactSuffix" nillable="true" type="xsd:string"/> 
>      <element name="contactTitle" nillable="true" type="xsd:string"/> 
>      <element name="ecid" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>   </schema> 
>   <schema elementFormDefault="qualified" targetNamespace="http://response.contact.pw.services.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <import namespace="http://to.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://headers.message.framework.core.crm.jpmorgan.com"/> 
>    <import namespace="http://request.contact.pw.services.crm.jpmorgan.com"/> 
>    <import namespace="http://contact.pw.services.crm.jpmorgan.com"/> 
>    <complexType name="GetContactByEcidResponse"> 
>     <complexContent> 
>      <extension base="tns3:Response"> 
>       <sequence> 
>        <element name="clientContactTO" nillable="true" type="impl:ArrayOf_tns5_ClientContactTO"/> 
>       </sequence> 
>      </extension> 
>     </complexContent> 
>    </complexType> 
>   </schema> 
>  </wsdl:types> 
>    <wsdl:message name="getContactByEcidResponse"> 
>       <wsdl:part element="impl:getContactByEcidResponse" name="parameters"/> 
>    </wsdl:message> 
>    <wsdl:message name="getContactByEcidRequest"> 
>       <wsdl:part element="impl:getContactByEcid" name="parameters"/> 
>    </wsdl:message> 
>    <wsdl:portType name="GetContactByEcid"> 
>       <wsdl:operation name="getContactByEcid"> 
>          <wsdl:input message="impl:getContactByEcidRequest" name="getContactByEcidRequest"/> 
>          <wsdl:output message="impl:getContactByEcidResponse" name="getContactByEcidResponse"/> 
>       </wsdl:operation> 
>    </wsdl:portType> 
>    <wsdl:binding name="GetContactByEcidSoapBinding" type="impl:GetContactByEcid"> 
>       <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
>       <wsdl:operation name="getContactByEcid"> 
>          <wsdlsoap:operation soapAction=""/> 
>          <wsdl:input name="getContactByEcidRequest"> 
>             <wsdlsoap:body use="literal"/> 
>          </wsdl:input> 
>          <wsdl:output name="getContactByEcidResponse"> 
>             <wsdlsoap:body use="literal"/> 
>          </wsdl:output> 
>       </wsdl:operation> 
>    </wsdl:binding> 
>    <wsdl:service name="GetContactByEcidService"> 
>       <wsdl:port binding="impl:GetContactByEcidSoapBinding" name="GetContactByEcid"> 
>          <wsdlsoap:address location="http://localhost:2000/PWServicesWEB/services/GetContactByEcid"/> 
>       </wsdl:port> 
>    </wsdl:service> 
> </wsdl:definitions> 
> ----------------------------------------------------------------------------------------------------------
> I can get a correct response if I remove all the extra namespaces and collapse my objects into a single namespace like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://coverage.pw.services.crm.jpmorgan.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://coverage.pw.services.crm.jpmorgan.com" 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.2.1
> Built on Jun 15, 2005 (04:05:16 GMT+00:00)-->
>  <wsdl:types>
>   <schema elementFormDefault="qualified" targetNamespace="http://coverage.pw.services.crm.jpmorgan.com" xmlns="http://www.w3.org/2001/XMLSchema">
>    <element name="getCoverageTeamByEcid">
>     <complexType>
>      <sequence>
>       <element name="request" type="impl:GetCoverageTeamByEcidRequest"/>
>      </sequence>
>     </complexType>
>    </element>
>    <complexType name="ArrayOf_impl_SortDetail">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:SortDetail"/>
>     </sequence>
>    </complexType>
>    <element name="getCoverageTeamByEcidResponse">
>     <complexType>
>      <sequence>
>       <element name="getCoverageTeamByEcidReturn" type="impl:GetCoverageTeamByEcidResponse"/>
>      </sequence>
>     </complexType>
>    </element>
>    <complexType name="ArrayOf_impl_ErrorIdentifier">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:ErrorIdentifier"/>
>     </sequence>
>    </complexType>
>    <complexType name="ArrayOf_impl_CoverageTeamInfoTO">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:CoverageTeamInfoTO"/>
>     </sequence>
>    </complexType>
>    <complexType name="SortDetail">
>     <sequence>
>      <element name="sortColumn" nillable="true" type="xsd:string"/>
>      <element name="sortOrder" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="PagingRequestDetail">
>     <sequence>
>      <element name="endRow" type="xsd:int"/>
>      <element name="maxRow" type="xsd:int"/>
>      <element name="sortDetail" nillable="true" type="impl:ArrayOf_impl_SortDetail"/>
>      <element name="startRow" type="xsd:int"/>
>     </sequence>
>    </complexType>
>    <complexType name="RequestHeader">
>     <sequence>
>      <element name="applicationLineOfBusinessRoleIdentifier" nillable="true" type="xsd:string"/>
>      <element name="requestingAppID" nillable="true" type="xsd:string"/>
>      <element name="submitTime" nillable="true" type="xsd:string"/>
>      <element name="trackingID" nillable="true" type="xsd:string"/>
>      <element name="workerStandardIdentifier" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="Request">
>     <sequence>
>      <element name="pagingRequestDetail" nillable="true" type="impl:PagingRequestDetail"/>
>      <element name="requestHeader" nillable="true" type="impl:RequestHeader"/>
>      <element name="scope" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="PagingResponseDetail">
>     <sequence>
>      <element name="rowReturned" type="xsd:int"/>
>      <element name="totalRowAvailable" type="xsd:int"/>
>     </sequence>
>    </complexType>
>    <complexType name="ErrorIdentifier">
>     <sequence>
>      <element name="key" nillable="true" type="xsd:string"/>
>      <element name="value" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="ErrorDetail">
>     <sequence>
>      <element name="applicationErrorCode" nillable="true" type="xsd:string"/>
>      <element name="applicationErrorID" nillable="true" type="xsd:string"/>
>      <element name="applicationErrorMsg" nillable="true" type="xsd:string"/>
>      <element name="errorIdentifier" nillable="true" type="impl:ArrayOf_impl_ErrorIdentifier"/>
>      <element name="systemErrorCode" nillable="true" type="xsd:string"/>
>      <element name="systemErrorMsg" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="ResponseHeader">
>     <sequence>
>      <element name="errorDetail" nillable="true" type="impl:ErrorDetail"/>
>      <element name="responseStatus" nillable="true" type="xsd:string"/>
>      <element name="submitTime" nillable="true" type="xsd:string"/>
>      <element name="successStatusCode" nillable="true" type="xsd:string"/>
>      <element name="trackingID" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="Response">
>     <sequence>
>      <element name="pagingResponseDetail" nillable="true" type="impl:PagingResponseDetail"/>
>      <element name="responseHeader" nillable="true" type="impl:ResponseHeader"/>
>     </sequence>
>    </complexType>
>    <complexType name="GetCoverageTeamByEcidRequest">
>     <complexContent>
>      <extension base="impl:Request">
>       <sequence>
>        <element name="ecid" nillable="true" type="xsd:string"/>
>       </sequence>
>      </extension>
>     </complexContent>
>    </complexType>
>    <complexType name="CoverageTeamInfoTO">
>     <sequence>
>      <element name="cvrRoleTmrDs" nillable="true" type="xsd:string"/>
>      <element name="cvrTeamMembTmrCd" nillable="true" type="xsd:string"/>
>      <element name="employeeCityName" nillable="true" type="xsd:string"/>
>      <element name="employeeEmail" nillable="true" type="xsd:string"/>
>      <element name="employeeFirstName" nillable="true" type="xsd:string"/>
>      <element name="employeeLastName" nillable="true" type="xsd:string"/>
>      <element name="employeeMiddleName" nillable="true" type="xsd:string"/>
>      <element name="employeePhone" nillable="true" type="xsd:string"/>
>      <element name="employeeStandardId" nillable="true" type="xsd:string"/>
>      <element name="employeeStateCode" nillable="true" type="xsd:string"/>
>      <element name="employeeTitleName" nillable="true" type="xsd:string"/>
>      <element name="primaryFlag" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>    <complexType name="GetCoverageTeamByEcidResponse">
>     <complexContent>
>      <extension base="impl:Response">
>       <sequence>
>        <element name="coverageTeamInfoTO" nillable="true" type="impl:ArrayOf_impl_CoverageTeamInfoTO"/>
>       </sequence>
>      </extension>
>     </complexContent>
>    </complexType>
>   </schema>
>  </wsdl:types>
>    <wsdl:message name="getCoverageTeamByEcidResponse">
>       <wsdl:part element="impl:getCoverageTeamByEcidResponse" name="parameters"/>
>    </wsdl:message>
>    <wsdl:message name="getCoverageTeamByEcidRequest">
>       <wsdl:part element="impl:getCoverageTeamByEcid" name="parameters"/>
>    </wsdl:message>
>    <wsdl:portType name="GetCoverageTeamByEcid">
>       <wsdl:operation name="getCoverageTeamByEcid">
>          <wsdl:input message="impl:getCoverageTeamByEcidRequest" name="getCoverageTeamByEcidRequest"/>
>          <wsdl:output message="impl:getCoverageTeamByEcidResponse" name="getCoverageTeamByEcidResponse"/>
>       </wsdl:operation>
>    </wsdl:portType>
>    <wsdl:binding name="GetCoverageTeamByEcidSoapBinding" type="impl:GetCoverageTeamByEcid">
>       <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>       <wsdl:operation name="getCoverageTeamByEcid">
>          <wsdlsoap:operation soapAction=""/>
>          <wsdl:input name="getCoverageTeamByEcidRequest">
>             <wsdlsoap:body use="literal"/>
>          </wsdl:input>
>          <wsdl:output name="getCoverageTeamByEcidResponse">
>             <wsdlsoap:body use="literal"/>
>          </wsdl:output>
>       </wsdl:operation>
>    </wsdl:binding>
>    <wsdl:service name="GetCoverageTeamByEcidService">
>       <wsdl:port binding="impl:GetCoverageTeamByEcidSoapBinding" name="GetCoverageTeamByEcid">
>          <wsdlsoap:address location="http://localhost:2000/PWServicesWEB/services/GetCoverageTeamByEcid"/>
>       </wsdl:port>
>    </wsdl:service>
> </wsdl:definitions>

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