[ http://issues.apache.org/jira/browse/AXIS-2143?page=all ]
Davanum Srinivas updated AXIS-2143:
-----------------------------------
Priority: Critical (was: Blocker)
> 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
> Priority: Critical
> 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