You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ke...@jpmorgan.com on 2005/07/11 21:22:51 UTC

Axis 1.2.1 -> .NET interop problem

Hi,

I've constructed a very simple test case in Java and am using Java2WSDL 
and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for 
these tests and created the WSDL using document/wrapped.  The service 
works fine when using Axis as the client, but when connecting from .NET 
the response is not deserialized correctly.

Microsoft has indicated that this is because Axis is not including the 
qualified namespace on the return elements.  Is this a bug/weakness in 
Axis?  Is there a work-around?  Am I doing something else wrong?

Here is the wsdl, genereated from Java2WSDL and retrieved from the server 
with ?wsdl with the request and response below:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions 
targetNamespace="http://test.ckc.services.crm.jpmorgan.com" 
xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://test.ckc.services.crm.jpmorgan.com" 
xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com" 
xmlns="http://www.w3.org/2001/XMLSchema">
   <element name="test">
    <complexType>
     <sequence>
      <element name="request" type="impl:TestRequest"/>
     </sequence>

    </complexType>
   </element>
   <complexType name="TestRequest">
    <sequence>
     <element name="userId" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="testResponse">
    <complexType>

     <sequence>
      <element name="testReturn" type="impl:TestResponse"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="TestTO">
    <sequence>
     <element name="firstName" nillable="true" type="xsd:string"/>
     <element name="lastName" nillable="true" type="xsd:string"/>

    </sequence>
   </complexType>
   <complexType name="ArrayOfTestTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item" 
type="impl:TestTO"/>
    </sequence>
   </complexType>
   <complexType name="TestResponse">
    <sequence>

     <element name="testArray" nillable="true" type="impl:ArrayOfTestTO"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="testResponse">

      <wsdl:part element="impl:testResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="testRequest">

      <wsdl:part element="impl:test" name="parameters"/>

   </wsdl:message>

   <wsdl:portType name="TestService">

      <wsdl:operation name="test">

         <wsdl:input message="impl:testRequest" name="testRequest"/>

         <wsdl:output message="impl:testResponse" name="testResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService">

      <wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="test">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="testRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="testResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="TestServiceService">

      <wsdl:port binding="impl:TestServiceSoapBinding" name="TestService">

         <wsdlsoap:address 
location="http://localhost:9080/CKCServicesWEB/services/TestService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

Here is the request:

POST /CKCServicesWEB/services/TestService HTTP/1.0 Content-Type: text/xml; 
charset=utf-8 Accept: application/soap+xml, application/dime, 
multipart/related, text/* User-Agent: Axis/1.2.1 Host: localhost:2000 
Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 
367  <?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
         <test xmlns="http://test.ckc.services.crm.jpmorgan.com">
            <request>
               <userId xsi:nil="true"/>
            </request>
         </test>
      </soapenv:Body>
   </soapenv:Envelope>


Here is the response:

HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu, 01 
Dec 1994 16:00:00 GMT Set-Cookie: 
JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/ Cache-Control: 
no-cache="set-cookie,set-cookie2" Content-Type: text/xml; charset=utf-8 
Content-Language: en-US Connection: close  <?xml version="1.0" 
encoding="utf-8"?>
   <soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
         <testResponse xmlns="http://test.ckc.services.crm.jpmorgan.com">
            <testReturn>
               <testArray>
                  <testArray>
                     <firstName>George</firstName>
                     <lastName>Washington</lastName>
                  </testArray>
                  <testArray>
                     <firstName>Ben</firstName>
                     <lastName>Franklin</lastName>
                  </testArray>
               </testArray>
            </testReturn>
         </testResponse>
      </soapenv:Body>
   </soapenv:Envelope>





Thank you,

Ken Katsma
J.P. Morgan Chase
Senior Application Development Analyst
Wholesale CRM/Core Services
312-954-8634


Re: Axis 1.2.1 -> .NET interop problem

Posted by Venkat Reddy <vr...@gmail.com>.
AFAICT, you shouldn't see the extra Array wrapper with latest Axis CVS.

- venkat


On 7/12/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> wrote:
>  
> Anne, 
>  
> Thanks for your advice.  Can you tell me what is causing the extra testArray
> wrapper?  It's not clear to me how Axis is generating the extra wrapper if
> I'm not asking it to do so in the WSDL.  Is this a bug? 
>  
> Thank you,
>  
>  Ken Katsma
>  J.P. Morgan Chase
>  Senior Application Development Analyst
>  Wholesale CRM/Core Services
>  312-954-8634
>  
>  
>  
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/11/2005 02:32 PM 
> Please respond to axis-user         
>         To:        axis-user@ws.apache.org 
>         cc:         
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  
>  
>  
> Ken,
>  
>  Your response is fully qualified. The problem is that your response
>  contains an extra "testArray" wrapper. According to your schema, the
>  response should look like this:
>  
>       <soapenv:Body>
>          <testResponse
> xmlns="http://test.ckc.services.crm.jpmorgan.com">
>             <testReturn>
>                  <testArray>
>                      <firstName>George</firstName>
>                      <lastName>Washington</lastName>
>                   </testArray>
>                   <testArray>
>                      <firstName>Ben</firstName>
>                      <lastName>Franklin</lastName>
>                   </testArray>
>             </testReturn>
>          </testResponse>
>       </soapenv:Body>
>    </soapenv:Envelope>
>  
>  Anne
>  
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com>
> wrote:
>  >  
>  > Hi,
>  >  
>  >  I've constructed a very simple test case in Java and am using Java2WSDL 
>  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for 
>  >  these tests and created the WSDL using document/wrapped.  The service 
>  >  works fine when using Axis as the client, but when connecting from .NET 
>  >  the response is not deserialized correctly.
>  >  
>  >  Microsoft has indicated that this is because Axis is not including the 
>  >  qualified namespace on the return elements.  Is this a bug/weakness in 
>  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  
>  >  Here is the wsdl, genereated from Java2WSDL and retrieved from the
> server 
>  >  with ?wsdl with the request and response below:
>  >  
>  > <?xml version="1.0" encoding="UTF-8"?> 
>  > <wsdl:definitions
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  > xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >    <element name="test"> 
>  >     <complexType> 
>  >      <sequence> 
>  >       <element name="request" type="impl:TestRequest"/> 
>  >      </sequence> 
>  >  
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestRequest"> 
>  >     <sequence> 
>  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <element name="testResponse"> 
>  >     <complexType> 
>  >  
>  >      <sequence> 
>  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >      </sequence> 
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestTO"> 
>  >     <sequence> 
>  >      <element name="firstName" nillable="true" type="xsd:string"/> 
>  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="ArrayOfTestTO"> 
>  >     <sequence> 
>  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  > type="impl:TestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="TestResponse"> 
>  >     <sequence> 
>  >  
>  >      <element name="testArray" nillable="true"
> type="impl:ArrayOfTestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >   </schema> 
>  >  </wsdl:types> 
>  >  
>  >    <wsdl:message name="testResponse"> 
>  >  
>  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  
>  >    </wsdl:message> 
>  >  
>  >    <wsdl:message name="testRequest"> 
>  >  
>  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  
>  >    </wsdl:message> 
>  >  
>  >    <wsdl:portType name="TestService"> 
>  >  
>  >       <wsdl:operation name="test"> 
>  >  
>  >          <wsdl:input message="impl:testRequest" name="testRequest"/> 
>  >  
>  >          <wsdl:output message="impl:testResponse" name="testResponse"/> 
>  >  
>  >       </wsdl:operation> 
>  >  
>  >    </wsdl:portType> 
>  >  
>  >    <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService"> 
>  >  
>  >       <wsdlsoap:binding style="document"
>  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  >  
>  >       <wsdl:operation name="test"> 
>  >  
>  >          <wsdlsoap:operation soapAction=""/> 
>  >  
>  >          <wsdl:input name="testRequest"> 
>  >  
>  >             <wsdlsoap:body use="literal"/> 
>  >  
>  >          </wsdl:input> 
>  >  
>  >          <wsdl:output name="testResponse"> 
>  >  
>  >             <wsdlsoap:body use="literal"/> 
>  >  
>  >          </wsdl:output> 
>  >  
>  >       </wsdl:operation> 
>  >  
>  >    </wsdl:binding> 
>  >  
>  >    <wsdl:service name="TestServiceService"> 
>  >  
>  >       <wsdl:port binding="impl:TestServiceSoapBinding"
>  > name="TestService"> 
>  >  
>  >          <wsdlsoap:address
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  
>  >       </wsdl:port> 
>  >  
>  >    </wsdl:service> 
>  >  
>  > </wsdl:definitions> 
>  >  
>  > Here is the request: 
>  >  
>  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  > Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
>  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 Host:
>  > localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: ""
>  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <test
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <request> 
>  >                <userId xsi:nil="true"/> 
>  >             </request> 
>  >          </test> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  >  
>  >  
>  > Here is the response: 
>  >  
>  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu, 01
>  > Dec 1994 16:00:00 GMT Set-Cookie:
>  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US Connection:
>  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <testReturn> 
>  >                <testArray> 
>  >                   <testArray> 
>  >                      <firstName>George</firstName> 
>  >                      <lastName>Washington</lastName> 
>  >                   </testArray> 
>  >                   <testArray> 
>  >                      <firstName>Ben</firstName> 
>  >                      <lastName>Franklin</lastName> 
>  >                   </testArray> 
>  >                </testArray> 
>  >             </testReturn> 
>  >          </testResponse> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  >  
>  > 
>  >  
>  >  
>  >   
>  > Thank you,
>  >  
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  >  
>  > 
>  > ________________________________
>  > 
>  > 
>  >  
>  > 
>  >  This communication is for informational purposes only. It is not
> intended
>  > as an offer or solicitation for the purchase or sale of any financial
>  > instrument or as an official confirmation of any transaction. All market
>  > prices, data and other information are notwa rranted as to completeness
> or
>  > accuracy and are subject to change without notice. Any comments or
>  > statements made herein do not necessarily reflect those of J.P. Morgan
> Chase
>  > & Co., its subsidiaries and affiliates.
>  
>

Re: Axis 1.2.1 -> .NET interop problem

Posted by ke...@jpmorgan.com.
Venkat, thanks for your help, I was able to run with 1.3.

FYI, the 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"/>

As this still appears to be an issue with the latest build, I will log a 
bug report.

<?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>




Thank you,

Ken Katsma
J.P. Morgan Chase
Application Architect
Wholesale CRM/Core Services




Kenneth R Katsma

Venkat Reddy <vr...@gmail.com>
07/26/2005 05:08 AM
Please respond to axis-user
 
        To:     axis-user@ws.apache.org
        cc: 
        Subject:        Re: Axis 1.2.1 -> .NET interop problem


For me, it appears that your classpath might have a jaxrpc.jar in
classpath other than the one built using axis code

- venkat

On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> 
wrote:
> 
> FYI, I downloaded the latest build and did Java2WSDL/WSDL2Java, the
> WSDL2Java gave me this: 
> 
> java.lang.NoSuchMethodError: javax.xml.namespace.QName: method
> getPrefix()Ljava/lang/String; not found 
>         at
> 
org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithDifferentLocal(BackslashUtil.java:47)
>         at
> 
org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithBackslashlessLocal(BackslashUtil.java:32)
>         at
> 
org.apache.axis.wsdl.symbolTable.SymbolTable.populateServices(SymbolTable.java:3070)
>         at
> 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:745)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
>         at
> 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
>         at
> 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
>         at
> org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
>         at java.lang.Thread.run(Thread.java:568) 
> 
> It appears to be in the axis code? 
> 
> Thank you,
> 
>  Ken Katsma
>  J.P. Morgan Chase
>  Application Architect
>  Wholesale CRM/Core Services
>  312-954-8634
> 
> 
> 
> Kenneth R Katsma 
>  Venkat Reddy <vr...@gmail.com> 
> 
> 07/20/2005 08:42 AM 
> Please respond to axis-user 
>         To:        axis-user@ws.apache.org 
>         cc: 
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
> 
> 
> 
> FYI - I have already tested your wsdl againist latest Axis, and i
>  don't see any extra testArray wrapper in response. Using latest Axis -
>  is that a feasible option for you?
> 
>  - venkat
> 
>  On 7/20/05, kenneth.r.katsma@jpmorgan.com 
<ke...@jpmorgan.com>
> wrote:
>  > 
>  > I submitted another article on this subject where I found that it was
>  > related to multiple namespaces.  You asked me to submit a bug report,
> which
>  > I will do later today. 
>  > 
>  > Thank you,
>  > 
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Application Architect
>  >  Wholesale CRM/Core Services
>  > 
>  > 
>  > 
>  > Kenneth R Katsma 
>  >  Anne Thomas Manes <at...@gmail.com> 
>  > 
>  > 07/19/2005 07:20 PM 
>  > 
>  > Please respond to axis-user 
>  >         To:        axis-user@ws.apache.org 
>  >         cc: 
>  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  > 
>  > 
>  > 
>  > Quite possibly. What version of Axis are you using? We had a lot of
>  >  bugs dealing with arrays.
>  > 
>  >  Anne
>  > 
>  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
> <ke...@jpmorgan.com>
>  > wrote:
>  >  > 
>  >  > Anne, 
>  >  > 
>  >  > Thanks for your advice.  Can you tell me what is causing the extra
>  > testArray
>  >  > wrapper?  It's not clear to me how Axis is generating the extra
> wrapper
>  > if
>  >  > I'm not asking it to do so in the WSDL.  Is this a bug? 
>  >  > 
>  >  > Thank you,
>  >  > 
>  >  >  Ken Katsma
>  >  >  J.P. Morgan Chase
>  >  >  Senior Application Development Analyst
>  >  >  Wholesale CRM/Core Services
>  >  >  312-954-8634
>  >  > 
>  >  > 
>  >  > 
>  >  > Kenneth R Katsma 
>  >  >  Anne Thomas Manes <at...@gmail.com> 
>  >  > 
>  >  > 07/11/2005 02:32 PM 
>  >  > Please respond to axis-user 
>  >  >         To:        axis-user@ws.apache.org 
>  >  >         cc: 
>  >  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  >  > 
>  >  > 
>  >  > 
>  >  > Ken,
>  >  > 
>  >  >  Your response is fully qualified. The problem is that your 
response
>  >  >  contains an extra "testArray" wrapper. According to your schema, 
the
>  >  >  response should look like this:
>  >  > 
>  >  >       <soapenv:Body>
>  >  >          <testResponse
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >             <testReturn>
>  >  >                  <testArray>
>  >  >                      <firstName>George</firstName>
>  >  >                      <lastName>Washington</lastName>
>  >  >                   </testArray>
>  >  >                   <testArray>
>  >  >                      <firstName>Ben</firstName>
>  >  >                      <lastName>Franklin</lastName>
>  >  >                   </testArray>
>  >  >             </testReturn>
>  >  >          </testResponse>
>  >  >       </soapenv:Body>
>  >  >    </soapenv:Envelope>
>  >  > 
>  >  >  Anne
>  >  > 
>  >  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
>  > <ke...@jpmorgan.com>
>  >  > wrote:
>  >  >  > 
>  >  >  > Hi,
>  >  >  > 
>  >  >  >  I've constructed a very simple test case in Java and am using
>  > Java2WSDL 
>  >  >  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 
1.2.1
> for
>  >  >  >  these tests and created the WSDL using document/wrapped.  The
> service
>  >  >  >  works fine when using Axis as the client, but when connecting 
from
>  > .NET 
>  >  >  >  the response is not deserialized correctly.
>  >  >  > 
>  >  >  >  Microsoft has indicated that this is because Axis is not 
including
>  > the 
>  >  >  >  qualified namespace on the return elements.  Is this a
> bug/weakness
>  > in 
>  >  >  >  Axis?  Is there a work-around?  Am I doing something else 
wrong?
>  >  >  > 
>  >  >  >  Here is the wsdl, genereated from Java2WSDL and retrieved from 
the
>  >  > server 
>  >  >  >  with ?wsdl with the request and response below:
>  >  >  > 
>  >  >  > <?xml version="1.0" encoding="UTF-8"?> 
>  >  >  > <wsdl:definitions
>  >  >  >
>  >  >
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  >  >  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  >  >  >
>  > xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  >  >  >
>  > xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  >  >  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >  >  >    <element name="test"> 
>  >  >  >     <complexType> 
>  >  >  >      <sequence> 
>  >  >  >       <element name="request" type="impl:TestRequest"/> 
>  >  >  >      </sequence> 
>  >  >  > 
>  >  >  >     </complexType> 
>  >  >  >    </element> 
>  >  >  >    <complexType name="TestRequest"> 
>  >  >  >     <sequence> 
>  >  >  >      <element name="userId" nillable="true" type="xsd:string"/> 

>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <element name="testResponse"> 
>  >  >  >     <complexType> 
>  >  >  > 
>  >  >  >      <sequence> 
>  >  >  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >  >  >      </sequence> 
>  >  >  >     </complexType> 
>  >  >  >    </element> 
>  >  >  >    <complexType name="TestTO"> 
>  >  >  >     <sequence> 
>  >  >  >      <element name="firstName" nillable="true" 
type="xsd:string"/> 
>  >  >  >      <element name="lastName" nillable="true" 
type="xsd:string"/> 
>  >  >  > 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <complexType name="ArrayOfTestTO"> 
>  >  >  >     <sequence> 
>  >  >  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  >  >  > type="impl:TestTO"/> 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <complexType name="TestResponse"> 
>  >  >  >     <sequence> 
>  >  >  > 
>  >  >  >      <element name="testArray" nillable="true"
>  >  > type="impl:ArrayOfTestTO"/> 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >   </schema> 
>  >  >  >  </wsdl:types> 
>  >  >  > 
>  >  >  >    <wsdl:message name="testResponse"> 
>  >  >  > 
>  >  >  >       <wsdl:part element="impl:testResponse" 
name="parameters"/> 
>  >  >  > 
>  >  >  >    </wsdl:message> 
>  >  >  > 
>  >  >  >    <wsdl:message name="testRequest"> 
>  >  >  > 
>  >  >  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  >  > 
>  >  >  >    </wsdl:message> 
>  >  >  > 
>  >  >  >    <wsdl:portType name="TestService"> 
>  >  >  > 
>  >  >  >       <wsdl:operation name="test"> 
>  >  >  > 
>  >  >  >          <wsdl:input message="impl:testRequest"
> name="testRequest"/> 
>  >  >  > 
>  >  >  >          <wsdl:output message="impl:testResponse"
>  > name="testResponse"/> 
>  >  >  > 
>  >  >  >       </wsdl:operation> 
>  >  >  > 
>  >  >  >    </wsdl:portType> 
>  >  >  > 
>  >  >  >    <wsdl:binding name="TestServiceSoapBinding"
>  > type="impl:TestService"> 
>  >  >  > 
>  >  >  >       <wsdlsoap:binding style="document"
>  >  >  > transport="http://schemas.xmlsoap.org/soap/http"/>
>  >  >  > 
>  >  >  >       <wsdl:operation name="test"> 
>  >  >  > 
>  >  >  >          <wsdlsoap:operation soapAction=""/> 
>  >  >  > 
>  >  >  >          <wsdl:input name="testRequest"> 
>  >  >  > 
>  >  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  > 
>  >  >  >          </wsdl:input> 
>  >  >  > 
>  >  >  >          <wsdl:output name="testResponse"> 
>  >  >  > 
>  >  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  > 
>  >  >  >          </wsdl:output> 
>  >  >  > 
>  >  >  >       </wsdl:operation> 
>  >  >  > 
>  >  >  >    </wsdl:binding> 
>  >  >  > 
>  >  >  >    <wsdl:service name="TestServiceService"> 
>  >  >  > 
>  >  >  >       <wsdl:port
>  > binding="impl:TestServiceSoapBinding"
>  >  >  > name="TestService"> 
>  >  >  > 
>  >  >  >          <wsdlsoap:address
>  >  >  >
>  >  >
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  >  > 
>  >  >  >       </wsdl:port> 
>  >  >  > 
>  >  >  >    </wsdl:service> 
>  >  >  > 
>  >  >  > </wsdl:definitions> 
>  >  >  > 
>  >  >  > Here is the request: 
>  >  >  > 
>  >  >  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  >  >  > Content-Type: text/xml; charset=utf-8 Accept: 
application/soap+xml,
>  >  >  > application/dime, multipart/related, text/* User-Agent: 
Axis/1.2.1
>  > Host:
>  >  >  > localhost:2000 Cache-Control: no-cache Pragma: no-cache 
SOAPAction:
> ""
>  >  >  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >  >  >    <soapenv:Envelope
>  >  >  >
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >  >
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >  >       <soapenv:Body> 
>  >  >  >          <test
>  >  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >  >             <request> 
>  >  >  >                <userId xsi:nil="true"/> 
>  >  >  >             </request> 
>  >  >  >          </test> 
>  >  >  >       </soapenv:Body> 
>  >  >  >    </soapenv:Envelope> 
>  >  >  > 
>  >  >  > 
>  >  >  > Here is the response: 
>  >  >  > 
>  >  >  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 
Expires:
> Thu,
>  > 01
>  >  >  > Dec 1994 16:00:00 GMT Set-Cookie:
>  >  >  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  >  >  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  >  >  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US
>  > Connection:
>  >  >  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >  >  >    <soapenv:Envelope
>  >  >  >
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >  >
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >  >       <soapenv:Body> 
>  >  >  >          <testResponse
>  >  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >  >             <testReturn> 
>  >  >  >                <testArray> 
>  >  >  >                   <testArray> 
>  >  >  >                      <firstName>George</firstName> 
>  >  >  > 
> <lastName>Washington</lastName> 
>  >  >  >                   </testArray> 
>  >  >  >                   <testArray> 
>  >  >  >                      <firstName>Ben</firstName> 
>  >  >  >                      <lastName>Franklin</lastName> 
>  >  >  >                   </testArray> 
>  >  >  >                </testArray> 
>  >  >  >             </testReturn> 
>  >  >  >          </testResponse> 
>  >  >  >       </soapenv:Body> 
>  >  >  >    </soapenv:Envelope> 
>  >  >  > 
>  >  >  > 
>  >  >  > 
>  >  >  > 
>  >  >  > 
>  >  >  > Thank you,
>  >  >  > 
>  >  >  >  Ken Katsma
>  >  >  >  J.P. Morgan Chase
>  >  >  >  Senior Application Development Analyst
>  >  >  >  Wholesale CRM/Core Services
>  >  >  >  312-954-8634
>  >  >  > 
>  >  >  > 
>  >  >  > ________________________________
>  >  >  > 
>  >  >  > 
>  >  >  > 
>  >  >  > 
>  >  >  >  This communication is for informational purposes only. It is 
not
>  >  > intended
>  >  >  > as an offer or solicitation for the purchase or sale of any
> financial
>  >  >  > instrument or as an official confirmation of any transaction. 
All
>  > market
>  >  >  > prices, data and other information are notwa rranted as to
>  > completeness
>  >  > or
>  >  >  > accuracy and are subject to change without notice. Any comments 
or
>  >  >  > statements made herein do not necessarily reflect those of J.P.
> Morgan
>  >  > Chase
>  >  >  > & Co., its subsidiaries and affiliates.
>  >  > 
>  >  >
>  > 
>  >
> 
>


Re: Axis 1.2.1 -> .NET interop problem

Posted by Venkat Reddy <vr...@gmail.com>.
For me, it appears that your classpath might have a jaxrpc.jar in
classpath other than the one built using axis code

- venkat

On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> wrote:
>  
> FYI, I downloaded the latest build and did Java2WSDL/WSDL2Java, the
> WSDL2Java gave me this: 
>  
> java.lang.NoSuchMethodError: javax.xml.namespace.QName: method
> getPrefix()Ljava/lang/String; not found 
>         at
> org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithDifferentLocal(BackslashUtil.java:47)
>         at
> org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithBackslashlessLocal(BackslashUtil.java:32)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populateServices(SymbolTable.java:3070)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:745)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
>         at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
>         at
> org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
>         at java.lang.Thread.run(Thread.java:568) 
>  
> It appears to be in the axis code? 
>  
> Thank you,
>  
>  Ken Katsma
>  J.P. Morgan Chase
>  Application Architect
>  Wholesale CRM/Core Services
>  312-954-8634
>  
>  
>  
> Kenneth R Katsma 
>  Venkat Reddy <vr...@gmail.com> 
> 
> 07/20/2005 08:42 AM 
> Please respond to axis-user         
>         To:        axis-user@ws.apache.org 
>         cc:         
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  
>  
>  
> FYI - I have already tested your wsdl againist latest Axis, and i
>  don't see any extra testArray wrapper in response. Using latest Axis -
>  is that a feasible option for you?
>  
>  - venkat
>  
>  On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com>
> wrote:
>  >  
>  > I submitted another article on this subject where I found that it was
>  > related to multiple namespaces.  You asked me to submit a bug report,
> which
>  > I will do later today. 
>  >  
>  > Thank you,
>  >  
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Application Architect
>  >  Wholesale CRM/Core Services
>  >  
>  >  
>  >  
>  > Kenneth R Katsma 
>  >  Anne Thomas Manes <at...@gmail.com> 
>  > 
>  > 07/19/2005 07:20 PM 
>  > 
>  > Please respond to axis-user         
>  >         To:        axis-user@ws.apache.org 
>  >         cc:         
>  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  >  
>  >  
>  >  
>  > Quite possibly. What version of Axis are you using? We had a lot of
>  >  bugs dealing with arrays.
>  >  
>  >  Anne
>  >  
>  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
> <ke...@jpmorgan.com>
>  > wrote:
>  >  >  
>  >  > Anne, 
>  >  >  
>  >  > Thanks for your advice.  Can you tell me what is causing the extra
>  > testArray
>  >  > wrapper?  It's not clear to me how Axis is generating the extra
> wrapper
>  > if
>  >  > I'm not asking it to do so in the WSDL.  Is this a bug? 
>  >  >  
>  >  > Thank you,
>  >  >  
>  >  >  Ken Katsma
>  >  >  J.P. Morgan Chase
>  >  >  Senior Application Development Analyst
>  >  >  Wholesale CRM/Core Services
>  >  >  312-954-8634
>  >  >  
>  >  >  
>  >  >  
>  >  > Kenneth R Katsma 
>  >  >  Anne Thomas Manes <at...@gmail.com> 
>  >  > 
>  >  > 07/11/2005 02:32 PM 
>  >  > Please respond to axis-user         
>  >  >         To:        axis-user@ws.apache.org 
>  >  >         cc:         
>  >  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  >  >  
>  >  >  
>  >  >  
>  >  > Ken,
>  >  >  
>  >  >  Your response is fully qualified. The problem is that your response
>  >  >  contains an extra "testArray" wrapper. According to your schema, the
>  >  >  response should look like this:
>  >  >  
>  >  >       <soapenv:Body>
>  >  >          <testResponse
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >             <testReturn>
>  >  >                  <testArray>
>  >  >                      <firstName>George</firstName>
>  >  >                      <lastName>Washington</lastName>
>  >  >                   </testArray>
>  >  >                   <testArray>
>  >  >                      <firstName>Ben</firstName>
>  >  >                      <lastName>Franklin</lastName>
>  >  >                   </testArray>
>  >  >             </testReturn>
>  >  >          </testResponse>
>  >  >       </soapenv:Body>
>  >  >    </soapenv:Envelope>
>  >  >  
>  >  >  Anne
>  >  >  
>  >  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
>  > <ke...@jpmorgan.com>
>  >  > wrote:
>  >  >  >  
>  >  >  > Hi,
>  >  >  >  
>  >  >  >  I've constructed a very simple test case in Java and am using
>  > Java2WSDL 
>  >  >  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1
> for
>  >  >  >  these tests and created the WSDL using document/wrapped.  The
> service
>  >  >  >  works fine when using Axis as the client, but when connecting from
>  > .NET 
>  >  >  >  the response is not deserialized correctly.
>  >  >  >  
>  >  >  >  Microsoft has indicated that this is because Axis is not including
>  > the 
>  >  >  >  qualified namespace on the return elements.  Is this a
> bug/weakness
>  > in 
>  >  >  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  >  >  
>  >  >  >  Here is the wsdl, genereated from Java2WSDL and retrieved from the
>  >  > server 
>  >  >  >  with ?wsdl with the request and response below:
>  >  >  >  
>  >  >  > <?xml version="1.0" encoding="UTF-8"?> 
>  >  >  > <wsdl:definitions
>  >  >  >
>  >  >
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  >  >  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  >  >  >
>  > xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  >  >  >
>  > xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  >  >  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >  >  >    <element name="test"> 
>  >  >  >     <complexType> 
>  >  >  >      <sequence> 
>  >  >  >       <element name="request" type="impl:TestRequest"/> 
>  >  >  >      </sequence> 
>  >  >  >  
>  >  >  >     </complexType> 
>  >  >  >    </element> 
>  >  >  >    <complexType name="TestRequest"> 
>  >  >  >     <sequence> 
>  >  >  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <element name="testResponse"> 
>  >  >  >     <complexType> 
>  >  >  >  
>  >  >  >      <sequence> 
>  >  >  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >  >  >      </sequence> 
>  >  >  >     </complexType> 
>  >  >  >    </element> 
>  >  >  >    <complexType name="TestTO"> 
>  >  >  >     <sequence> 
>  >  >  >      <element name="firstName" nillable="true" type="xsd:string"/> 
>  >  >  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  >  >  
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <complexType name="ArrayOfTestTO"> 
>  >  >  >     <sequence> 
>  >  >  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  >  >  > type="impl:TestTO"/> 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >    <complexType name="TestResponse"> 
>  >  >  >     <sequence> 
>  >  >  >  
>  >  >  >      <element name="testArray" nillable="true"
>  >  > type="impl:ArrayOfTestTO"/> 
>  >  >  >     </sequence> 
>  >  >  >    </complexType> 
>  >  >  >   </schema> 
>  >  >  >  </wsdl:types> 
>  >  >  >  
>  >  >  >    <wsdl:message name="testResponse"> 
>  >  >  >  
>  >  >  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  >  >  
>  >  >  >    </wsdl:message> 
>  >  >  >  
>  >  >  >    <wsdl:message name="testRequest"> 
>  >  >  >  
>  >  >  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  >  >  
>  >  >  >    </wsdl:message> 
>  >  >  >  
>  >  >  >    <wsdl:portType name="TestService"> 
>  >  >  >  
>  >  >  >       <wsdl:operation name="test"> 
>  >  >  >  
>  >  >  >          <wsdl:input message="impl:testRequest"
> name="testRequest"/> 
>  >  >  >  
>  >  >  >          <wsdl:output message="impl:testResponse"
>  > name="testResponse"/> 
>  >  >  >  
>  >  >  >       </wsdl:operation> 
>  >  >  >  
>  >  >  >    </wsdl:portType> 
>  >  >  >  
>  >  >  >    <wsdl:binding name="TestServiceSoapBinding"
>  > type="impl:TestService"> 
>  >  >  >  
>  >  >  >       <wsdlsoap:binding style="document"
>  >  >  > transport="http://schemas.xmlsoap.org/soap/http"/>
>  >  >  >  
>  >  >  >       <wsdl:operation name="test"> 
>  >  >  >  
>  >  >  >          <wsdlsoap:operation soapAction=""/> 
>  >  >  >  
>  >  >  >          <wsdl:input name="testRequest"> 
>  >  >  >  
>  >  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  >  
>  >  >  >          </wsdl:input> 
>  >  >  >  
>  >  >  >          <wsdl:output name="testResponse"> 
>  >  >  >  
>  >  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  >  
>  >  >  >          </wsdl:output> 
>  >  >  >  
>  >  >  >       </wsdl:operation> 
>  >  >  >  
>  >  >  >    </wsdl:binding> 
>  >  >  >  
>  >  >  >    <wsdl:service name="TestServiceService"> 
>  >  >  >  
>  >  >  >       <wsdl:port
>  > binding="impl:TestServiceSoapBinding"
>  >  >  > name="TestService"> 
>  >  >  >  
>  >  >  >          <wsdlsoap:address
>  >  >  >
>  >  >
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  >  >  
>  >  >  >       </wsdl:port> 
>  >  >  >  
>  >  >  >    </wsdl:service> 
>  >  >  >  
>  >  >  > </wsdl:definitions> 
>  >  >  >  
>  >  >  > Here is the request: 
>  >  >  >  
>  >  >  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  >  >  > Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
>  >  >  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1
>  > Host:
>  >  >  > localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction:
> ""
>  >  >  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >  >  >    <soapenv:Envelope
>  >  >  >
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >  >
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >  >       <soapenv:Body> 
>  >  >  >          <test
>  >  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >  >             <request> 
>  >  >  >                <userId xsi:nil="true"/> 
>  >  >  >             </request> 
>  >  >  >          </test> 
>  >  >  >       </soapenv:Body> 
>  >  >  >    </soapenv:Envelope> 
>  >  >  >  
>  >  >  >  
>  >  >  > Here is the response: 
>  >  >  >  
>  >  >  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires:
> Thu,
>  > 01
>  >  >  > Dec 1994 16:00:00 GMT Set-Cookie:
>  >  >  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  >  >  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  >  >  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US
>  > Connection:
>  >  >  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >  >  >    <soapenv:Envelope
>  >  >  >
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >  >
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >  >       <soapenv:Body> 
>  >  >  >          <testResponse
>  >  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >  >  >             <testReturn> 
>  >  >  >                <testArray> 
>  >  >  >                   <testArray> 
>  >  >  >                      <firstName>George</firstName> 
>  >  >  >                     
> <lastName>Washington</lastName> 
>  >  >  >                   </testArray> 
>  >  >  >                   <testArray> 
>  >  >  >                      <firstName>Ben</firstName> 
>  >  >  >                      <lastName>Franklin</lastName> 
>  >  >  >                   </testArray> 
>  >  >  >                </testArray> 
>  >  >  >             </testReturn> 
>  >  >  >          </testResponse> 
>  >  >  >       </soapenv:Body> 
>  >  >  >    </soapenv:Envelope> 
>  >  >  >  
>  >  >  > 
>  >  >  >  
>  >  >  >  
>  >  >  >   
>  >  >  > Thank you,
>  >  >  >  
>  >  >  >  Ken Katsma
>  >  >  >  J.P. Morgan Chase
>  >  >  >  Senior Application Development Analyst
>  >  >  >  Wholesale CRM/Core Services
>  >  >  >  312-954-8634
>  >  >  >  
>  >  >  > 
>  >  >  > ________________________________
>  >  >  > 
>  >  >  > 
>  >  >  >  
>  >  >  > 
>  >  >  >  This communication is for informational purposes only. It is not
>  >  > intended
>  >  >  > as an offer or solicitation for the purchase or sale of any
> financial
>  >  >  > instrument or as an official confirmation of any transaction. All
>  > market
>  >  >  > prices, data and other information are notwa rranted as to
>  > completeness
>  >  > or
>  >  >  > accuracy and are subject to change without notice. Any comments or
>  >  >  > statements made herein do not necessarily reflect those of J.P.
> Morgan
>  >  > Chase
>  >  >  > & Co., its subsidiaries and affiliates.
>  >  >  
>  >  >
>  >  
>  >
>  
>

Re: Axis 1.2.1 -> .NET interop problem

Posted by ke...@jpmorgan.com.
FYI, I downloaded the latest build and did Java2WSDL/WSDL2Java, the 
WSDL2Java gave me this:

java.lang.NoSuchMethodError: javax.xml.namespace.QName: method 
getPrefix()Ljava/lang/String; not found
        at 
org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithDifferentLocal(BackslashUtil.java:47)
        at 
org.apache.axis.wsdl.symbolTable.BackslashUtil.getQNameWithBackslashlessLocal(BackslashUtil.java:32)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populateServices(SymbolTable.java:3070)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:745)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
        at 
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Thread.java:568)

It appears to be in the axis code?

Thank you,

Ken Katsma
J.P. Morgan Chase
Application Architect
Wholesale CRM/Core Services
312-954-8634



Kenneth R Katsma

Venkat Reddy <vr...@gmail.com>
07/20/2005 08:42 AM
Please respond to axis-user
 
        To:     axis-user@ws.apache.org
        cc: 
        Subject:        Re: Axis 1.2.1 -> .NET interop problem


FYI - I have already tested your wsdl againist latest Axis, and i
don't see any extra testArray wrapper in response. Using latest Axis -
is that a feasible option for you?

- venkat

On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> 
wrote:
> 
> I submitted another article on this subject where I found that it was
> related to multiple namespaces.  You asked me to submit a bug report, 
which
> I will do later today. 
> 
> Thank you,
> 
>  Ken Katsma
>  J.P. Morgan Chase
>  Application Architect
>  Wholesale CRM/Core Services
> 
> 
> 
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/19/2005 07:20 PM 
> 
> Please respond to axis-user 
>         To:        axis-user@ws.apache.org 
>         cc: 
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
> 
> 
> 
> Quite possibly. What version of Axis are you using? We had a lot of
>  bugs dealing with arrays.
> 
>  Anne
> 
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com 
<ke...@jpmorgan.com>
> wrote:
>  > 
>  > Anne, 
>  > 
>  > Thanks for your advice.  Can you tell me what is causing the extra
> testArray
>  > wrapper?  It's not clear to me how Axis is generating the extra 
wrapper
> if
>  > I'm not asking it to do so in the WSDL.  Is this a bug? 
>  > 
>  > Thank you,
>  > 
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  > 
>  > 
>  > 
>  > Kenneth R Katsma 
>  >  Anne Thomas Manes <at...@gmail.com> 
>  > 
>  > 07/11/2005 02:32 PM 
>  > Please respond to axis-user 
>  >         To:        axis-user@ws.apache.org 
>  >         cc: 
>  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  > 
>  > 
>  > 
>  > Ken,
>  > 
>  >  Your response is fully qualified. The problem is that your response
>  >  contains an extra "testArray" wrapper. According to your schema, the
>  >  response should look like this:
>  > 
>  >       <soapenv:Body>
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >             <testReturn>
>  >                  <testArray>
>  >                      <firstName>George</firstName>
>  >                      <lastName>Washington</lastName>
>  >                   </testArray>
>  >                   <testArray>
>  >                      <firstName>Ben</firstName>
>  >                      <lastName>Franklin</lastName>
>  >                   </testArray>
>  >             </testReturn>
>  >          </testResponse>
>  >       </soapenv:Body>
>  >    </soapenv:Envelope>
>  > 
>  >  Anne
>  > 
>  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
> <ke...@jpmorgan.com>
>  > wrote:
>  >  > 
>  >  > Hi,
>  >  > 
>  >  >  I've constructed a very simple test case in Java and am using
> Java2WSDL 
>  >  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 
for
>  >  >  these tests and created the WSDL using document/wrapped.  The 
service
>  >  >  works fine when using Axis as the client, but when connecting 
from
> .NET 
>  >  >  the response is not deserialized correctly.
>  >  > 
>  >  >  Microsoft has indicated that this is because Axis is not 
including
> the 
>  >  >  qualified namespace on the return elements.  Is this a 
bug/weakness
> in 
>  >  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  > 
>  >  >  Here is the wsdl, genereated from Java2WSDL and retrieved from 
the
>  > server 
>  >  >  with ?wsdl with the request and response below:
>  >  > 
>  >  > <?xml version="1.0" encoding="UTF-8"?> 
>  >  > <wsdl:definitions
>  >  >
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  >  >
> xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  >  >
> xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >  >    <element name="test"> 
>  >  >     <complexType> 
>  >  >      <sequence> 
>  >  >       <element name="request" type="impl:TestRequest"/> 
>  >  >      </sequence> 
>  >  > 
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestRequest"> 
>  >  >     <sequence> 
>  >  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <element name="testResponse"> 
>  >  >     <complexType> 
>  >  > 
>  >  >      <sequence> 
>  >  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >  >      </sequence> 
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestTO"> 
>  >  >     <sequence> 
>  >  >      <element name="firstName" nillable="true" type="xsd:string"/> 

>  >  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  > 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="ArrayOfTestTO"> 
>  >  >     <sequence> 
>  >  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  >  > type="impl:TestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="TestResponse"> 
>  >  >     <sequence> 
>  >  > 
>  >  >      <element name="testArray" nillable="true"
>  > type="impl:ArrayOfTestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >   </schema> 
>  >  >  </wsdl:types> 
>  >  > 
>  >  >    <wsdl:message name="testResponse"> 
>  >  > 
>  >  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  > 
>  >  >    </wsdl:message> 
>  >  > 
>  >  >    <wsdl:message name="testRequest"> 
>  >  > 
>  >  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  > 
>  >  >    </wsdl:message> 
>  >  > 
>  >  >    <wsdl:portType name="TestService"> 
>  >  > 
>  >  >       <wsdl:operation name="test"> 
>  >  > 
>  >  >          <wsdl:input message="impl:testRequest" 
name="testRequest"/> 
>  >  > 
>  >  >          <wsdl:output message="impl:testResponse"
> name="testResponse"/> 
>  >  > 
>  >  >       </wsdl:operation> 
>  >  > 
>  >  >    </wsdl:portType> 
>  >  > 
>  >  >    <wsdl:binding name="TestServiceSoapBinding"
> type="impl:TestService"> 
>  >  > 
>  >  >       <wsdlsoap:binding style="document"
>  >  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  >  > 
>  >  >       <wsdl:operation name="test"> 
>  >  > 
>  >  >          <wsdlsoap:operation soapAction=""/> 
>  >  > 
>  >  >          <wsdl:input name="testRequest"> 
>  >  > 
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  > 
>  >  >          </wsdl:input> 
>  >  > 
>  >  >          <wsdl:output name="testResponse"> 
>  >  > 
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  > 
>  >  >          </wsdl:output> 
>  >  > 
>  >  >       </wsdl:operation> 
>  >  > 
>  >  >    </wsdl:binding> 
>  >  > 
>  >  >    <wsdl:service name="TestServiceService"> 
>  >  > 
>  >  >       <wsdl:port
> binding="impl:TestServiceSoapBinding"
>  >  > name="TestService"> 
>  >  > 
>  >  >          <wsdlsoap:address
>  >  >
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  > 
>  >  >       </wsdl:port> 
>  >  > 
>  >  >    </wsdl:service> 
>  >  > 
>  >  > </wsdl:definitions> 
>  >  > 
>  >  > Here is the request: 
>  >  > 
>  >  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  >  > Content-Type: text/xml; charset=utf-8 Accept: 
application/soap+xml,
>  >  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1
> Host:
>  >  > localhost:2000 Cache-Control: no-cache Pragma: no-cache 
SOAPAction: ""
>  >  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <test
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <request> 
>  >  >                <userId xsi:nil="true"/> 
>  >  >             </request> 
>  >  >          </test> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  > 
>  >  > 
>  >  > Here is the response: 
>  >  > 
>  >  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: 
Thu,
> 01
>  >  > Dec 1994 16:00:00 GMT Set-Cookie:
>  >  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  >  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  >  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US
> Connection:
>  >  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <testResponse
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <testReturn> 
>  >  >                <testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>George</firstName> 
>  >  >                      <lastName>Washington</lastName> 
>  >  >                   </testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>Ben</firstName> 
>  >  >                      <lastName>Franklin</lastName> 
>  >  >                   </testArray> 
>  >  >                </testArray> 
>  >  >             </testReturn> 
>  >  >          </testResponse> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  > Thank you,
>  >  > 
>  >  >  Ken Katsma
>  >  >  J.P. Morgan Chase
>  >  >  Senior Application Development Analyst
>  >  >  Wholesale CRM/Core Services
>  >  >  312-954-8634
>  >  > 
>  >  > 
>  >  > ________________________________
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  >  This communication is for informational purposes only. It is not
>  > intended
>  >  > as an offer or solicitation for the purchase or sale of any 
financial
>  >  > instrument or as an official confirmation of any transaction. All
> market
>  >  > prices, data and other information are notwa rranted as to
> completeness
>  > or
>  >  > accuracy and are subject to change without notice. Any comments or
>  >  > statements made herein do not necessarily reflect those of J.P. 
Morgan
>  > Chase
>  >  > & Co., its subsidiaries and affiliates.
>  > 
>  >
> 
>




-----------------------------------------
This communication is for informational purposes only. It is not intended
as an offer or solicitation for the purchase or sale of any financial
instrument or as an official confirmation of any transaction. All market
prices, data and other information are notwa rranted as to completeness or
accuracy and are subject to change without notice. Any comments or
statements made herein do not necessarily reflect those of J.P. Morgan
Chase & Co., its subsidiaries and affiliates.

Re: Axis 1.2.1 -> .NET interop problem

Posted by ke...@jpmorgan.com.
Yes, I will download it and give it a try, thanks.  I'll let you know if 
it works.

Thank you,

Ken Katsma
J.P. Morgan Chase
Application Architect
Wholesale CRM/Core Services
312-954-8634



Kenneth R Katsma

Venkat Reddy <vr...@gmail.com>
07/20/2005 08:42 AM
Please respond to axis-user
 
        To:     axis-user@ws.apache.org
        cc: 
        Subject:        Re: Axis 1.2.1 -> .NET interop problem


FYI - I have already tested your wsdl againist latest Axis, and i
don't see any extra testArray wrapper in response. Using latest Axis -
is that a feasible option for you?

- venkat

On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> 
wrote:
> 
> I submitted another article on this subject where I found that it was
> related to multiple namespaces.  You asked me to submit a bug report, 
which
> I will do later today. 
> 
> Thank you,
> 
>  Ken Katsma
>  J.P. Morgan Chase
>  Application Architect
>  Wholesale CRM/Core Services
> 
> 
> 
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/19/2005 07:20 PM 
> 
> Please respond to axis-user 
>         To:        axis-user@ws.apache.org 
>         cc: 
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
> 
> 
> 
> Quite possibly. What version of Axis are you using? We had a lot of
>  bugs dealing with arrays.
> 
>  Anne
> 
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com 
<ke...@jpmorgan.com>
> wrote:
>  > 
>  > Anne, 
>  > 
>  > Thanks for your advice.  Can you tell me what is causing the extra
> testArray
>  > wrapper?  It's not clear to me how Axis is generating the extra 
wrapper
> if
>  > I'm not asking it to do so in the WSDL.  Is this a bug? 
>  > 
>  > Thank you,
>  > 
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  > 
>  > 
>  > 
>  > Kenneth R Katsma 
>  >  Anne Thomas Manes <at...@gmail.com> 
>  > 
>  > 07/11/2005 02:32 PM 
>  > Please respond to axis-user 
>  >         To:        axis-user@ws.apache.org 
>  >         cc: 
>  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  > 
>  > 
>  > 
>  > Ken,
>  > 
>  >  Your response is fully qualified. The problem is that your response
>  >  contains an extra "testArray" wrapper. According to your schema, the
>  >  response should look like this:
>  > 
>  >       <soapenv:Body>
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >             <testReturn>
>  >                  <testArray>
>  >                      <firstName>George</firstName>
>  >                      <lastName>Washington</lastName>
>  >                   </testArray>
>  >                   <testArray>
>  >                      <firstName>Ben</firstName>
>  >                      <lastName>Franklin</lastName>
>  >                   </testArray>
>  >             </testReturn>
>  >          </testResponse>
>  >       </soapenv:Body>
>  >    </soapenv:Envelope>
>  > 
>  >  Anne
>  > 
>  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
> <ke...@jpmorgan.com>
>  > wrote:
>  >  > 
>  >  > Hi,
>  >  > 
>  >  >  I've constructed a very simple test case in Java and am using
> Java2WSDL 
>  >  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 
for
>  >  >  these tests and created the WSDL using document/wrapped.  The 
service
>  >  >  works fine when using Axis as the client, but when connecting 
from
> .NET 
>  >  >  the response is not deserialized correctly.
>  >  > 
>  >  >  Microsoft has indicated that this is because Axis is not 
including
> the 
>  >  >  qualified namespace on the return elements.  Is this a 
bug/weakness
> in 
>  >  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  > 
>  >  >  Here is the wsdl, genereated from Java2WSDL and retrieved from 
the
>  > server 
>  >  >  with ?wsdl with the request and response below:
>  >  > 
>  >  > <?xml version="1.0" encoding="UTF-8"?> 
>  >  > <wsdl:definitions
>  >  >
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  >  >
> xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  >  >
> xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >  >    <element name="test"> 
>  >  >     <complexType> 
>  >  >      <sequence> 
>  >  >       <element name="request" type="impl:TestRequest"/> 
>  >  >      </sequence> 
>  >  > 
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestRequest"> 
>  >  >     <sequence> 
>  >  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <element name="testResponse"> 
>  >  >     <complexType> 
>  >  > 
>  >  >      <sequence> 
>  >  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >  >      </sequence> 
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestTO"> 
>  >  >     <sequence> 
>  >  >      <element name="firstName" nillable="true" type="xsd:string"/> 

>  >  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  > 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="ArrayOfTestTO"> 
>  >  >     <sequence> 
>  >  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  >  > type="impl:TestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="TestResponse"> 
>  >  >     <sequence> 
>  >  > 
>  >  >      <element name="testArray" nillable="true"
>  > type="impl:ArrayOfTestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >   </schema> 
>  >  >  </wsdl:types> 
>  >  > 
>  >  >    <wsdl:message name="testResponse"> 
>  >  > 
>  >  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  > 
>  >  >    </wsdl:message> 
>  >  > 
>  >  >    <wsdl:message name="testRequest"> 
>  >  > 
>  >  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  > 
>  >  >    </wsdl:message> 
>  >  > 
>  >  >    <wsdl:portType name="TestService"> 
>  >  > 
>  >  >       <wsdl:operation name="test"> 
>  >  > 
>  >  >          <wsdl:input message="impl:testRequest" 
name="testRequest"/> 
>  >  > 
>  >  >          <wsdl:output message="impl:testResponse"
> name="testResponse"/> 
>  >  > 
>  >  >       </wsdl:operation> 
>  >  > 
>  >  >    </wsdl:portType> 
>  >  > 
>  >  >    <wsdl:binding name="TestServiceSoapBinding"
> type="impl:TestService"> 
>  >  > 
>  >  >       <wsdlsoap:binding style="document"
>  >  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  >  > 
>  >  >       <wsdl:operation name="test"> 
>  >  > 
>  >  >          <wsdlsoap:operation soapAction=""/> 
>  >  > 
>  >  >          <wsdl:input name="testRequest"> 
>  >  > 
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  > 
>  >  >          </wsdl:input> 
>  >  > 
>  >  >          <wsdl:output name="testResponse"> 
>  >  > 
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  > 
>  >  >          </wsdl:output> 
>  >  > 
>  >  >       </wsdl:operation> 
>  >  > 
>  >  >    </wsdl:binding> 
>  >  > 
>  >  >    <wsdl:service name="TestServiceService"> 
>  >  > 
>  >  >       <wsdl:port
> binding="impl:TestServiceSoapBinding"
>  >  > name="TestService"> 
>  >  > 
>  >  >          <wsdlsoap:address
>  >  >
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  > 
>  >  >       </wsdl:port> 
>  >  > 
>  >  >    </wsdl:service> 
>  >  > 
>  >  > </wsdl:definitions> 
>  >  > 
>  >  > Here is the request: 
>  >  > 
>  >  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  >  > Content-Type: text/xml; charset=utf-8 Accept: 
application/soap+xml,
>  >  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1
> Host:
>  >  > localhost:2000 Cache-Control: no-cache Pragma: no-cache 
SOAPAction: ""
>  >  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <test
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <request> 
>  >  >                <userId xsi:nil="true"/> 
>  >  >             </request> 
>  >  >          </test> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  > 
>  >  > 
>  >  > Here is the response: 
>  >  > 
>  >  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: 
Thu,
> 01
>  >  > Dec 1994 16:00:00 GMT Set-Cookie:
>  >  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  >  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  >  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US
> Connection:
>  >  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <testResponse
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <testReturn> 
>  >  >                <testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>George</firstName> 
>  >  >                      <lastName>Washington</lastName> 
>  >  >                   </testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>Ben</firstName> 
>  >  >                      <lastName>Franklin</lastName> 
>  >  >                   </testArray> 
>  >  >                </testArray> 
>  >  >             </testReturn> 
>  >  >          </testResponse> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  > Thank you,
>  >  > 
>  >  >  Ken Katsma
>  >  >  J.P. Morgan Chase
>  >  >  Senior Application Development Analyst
>  >  >  Wholesale CRM/Core Services
>  >  >  312-954-8634
>  >  > 
>  >  > 
>  >  > ________________________________
>  >  > 
>  >  > 
>  >  > 
>  >  > 
>  >  >  This communication is for informational purposes only. It is not
>  > intended
>  >  > as an offer or solicitation for the purchase or sale of any 
financial
>  >  > instrument or as an official confirmation of any transaction. All
> market
>  >  > prices, data and other information are notwa rranted as to
> completeness
>  > or
>  >  > accuracy and are subject to change without notice. Any comments or
>  >  > statements made herein do not necessarily reflect those of J.P. 
Morgan
>  > Chase
>  >  > & Co., its subsidiaries and affiliates.
>  > 
>  >
> 
>


Re: Axis 1.2.1 -> .NET interop problem

Posted by Venkat Reddy <vr...@gmail.com>.
FYI - I have already tested your wsdl againist latest Axis, and i
don't see any extra testArray wrapper in response. Using latest Axis -
is that a feasible option for you?

- venkat

On 7/20/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> wrote:
>  
> I submitted another article on this subject where I found that it was
> related to multiple namespaces.  You asked me to submit a bug report, which
> I will do later today. 
>  
> Thank you,
>  
>  Ken Katsma
>  J.P. Morgan Chase
>  Application Architect
>  Wholesale CRM/Core Services
>  
>  
>  
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/19/2005 07:20 PM 
> 
> Please respond to axis-user         
>         To:        axis-user@ws.apache.org 
>         cc:         
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  
>  
>  
> Quite possibly. What version of Axis are you using? We had a lot of
>  bugs dealing with arrays.
>  
>  Anne
>  
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com>
> wrote:
>  >  
>  > Anne, 
>  >  
>  > Thanks for your advice.  Can you tell me what is causing the extra
> testArray
>  > wrapper?  It's not clear to me how Axis is generating the extra wrapper
> if
>  > I'm not asking it to do so in the WSDL.  Is this a bug? 
>  >  
>  > Thank you,
>  >  
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  >  
>  >  
>  >  
>  > Kenneth R Katsma 
>  >  Anne Thomas Manes <at...@gmail.com> 
>  > 
>  > 07/11/2005 02:32 PM 
>  > Please respond to axis-user         
>  >         To:        axis-user@ws.apache.org 
>  >         cc:         
>  >         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  >  
>  >  
>  >  
>  > Ken,
>  >  
>  >  Your response is fully qualified. The problem is that your response
>  >  contains an extra "testArray" wrapper. According to your schema, the
>  >  response should look like this:
>  >  
>  >       <soapenv:Body>
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com">
>  >             <testReturn>
>  >                  <testArray>
>  >                      <firstName>George</firstName>
>  >                      <lastName>Washington</lastName>
>  >                   </testArray>
>  >                   <testArray>
>  >                      <firstName>Ben</firstName>
>  >                      <lastName>Franklin</lastName>
>  >                   </testArray>
>  >             </testReturn>
>  >          </testResponse>
>  >       </soapenv:Body>
>  >    </soapenv:Envelope>
>  >  
>  >  Anne
>  >  
>  >  On 7/11/05, kenneth.r.katsma@jpmorgan.com
> <ke...@jpmorgan.com>
>  > wrote:
>  >  >  
>  >  > Hi,
>  >  >  
>  >  >  I've constructed a very simple test case in Java and am using
> Java2WSDL 
>  >  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for
>  >  >  these tests and created the WSDL using document/wrapped.  The service
>  >  >  works fine when using Axis as the client, but when connecting from
> .NET 
>  >  >  the response is not deserialized correctly.
>  >  >  
>  >  >  Microsoft has indicated that this is because Axis is not including
> the 
>  >  >  qualified namespace on the return elements.  Is this a bug/weakness
> in 
>  >  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  >  
>  >  >  Here is the wsdl, genereated from Java2WSDL and retrieved from the
>  > server 
>  >  >  with ?wsdl with the request and response below:
>  >  >  
>  >  > <?xml version="1.0" encoding="UTF-8"?> 
>  >  > <wsdl:definitions
>  >  >
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  >  >
> xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  >  >
> xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  >  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >  >    <element name="test"> 
>  >  >     <complexType> 
>  >  >      <sequence> 
>  >  >       <element name="request" type="impl:TestRequest"/> 
>  >  >      </sequence> 
>  >  >  
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestRequest"> 
>  >  >     <sequence> 
>  >  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <element name="testResponse"> 
>  >  >     <complexType> 
>  >  >  
>  >  >      <sequence> 
>  >  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >  >      </sequence> 
>  >  >     </complexType> 
>  >  >    </element> 
>  >  >    <complexType name="TestTO"> 
>  >  >     <sequence> 
>  >  >      <element name="firstName" nillable="true" type="xsd:string"/> 
>  >  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  >  
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="ArrayOfTestTO"> 
>  >  >     <sequence> 
>  >  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  >  > type="impl:TestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >    <complexType name="TestResponse"> 
>  >  >     <sequence> 
>  >  >  
>  >  >      <element name="testArray" nillable="true"
>  > type="impl:ArrayOfTestTO"/> 
>  >  >     </sequence> 
>  >  >    </complexType> 
>  >  >   </schema> 
>  >  >  </wsdl:types> 
>  >  >  
>  >  >    <wsdl:message name="testResponse"> 
>  >  >  
>  >  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  >  
>  >  >    </wsdl:message> 
>  >  >  
>  >  >    <wsdl:message name="testRequest"> 
>  >  >  
>  >  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  >  
>  >  >    </wsdl:message> 
>  >  >  
>  >  >    <wsdl:portType name="TestService"> 
>  >  >  
>  >  >       <wsdl:operation name="test"> 
>  >  >  
>  >  >          <wsdl:input message="impl:testRequest" name="testRequest"/> 
>  >  >  
>  >  >          <wsdl:output message="impl:testResponse"
> name="testResponse"/> 
>  >  >  
>  >  >       </wsdl:operation> 
>  >  >  
>  >  >    </wsdl:portType> 
>  >  >  
>  >  >    <wsdl:binding name="TestServiceSoapBinding"
> type="impl:TestService"> 
>  >  >  
>  >  >       <wsdlsoap:binding style="document"
>  >  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  >  >  
>  >  >       <wsdl:operation name="test"> 
>  >  >  
>  >  >          <wsdlsoap:operation soapAction=""/> 
>  >  >  
>  >  >          <wsdl:input name="testRequest"> 
>  >  >  
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  
>  >  >          </wsdl:input> 
>  >  >  
>  >  >          <wsdl:output name="testResponse"> 
>  >  >  
>  >  >             <wsdlsoap:body use="literal"/> 
>  >  >  
>  >  >          </wsdl:output> 
>  >  >  
>  >  >       </wsdl:operation> 
>  >  >  
>  >  >    </wsdl:binding> 
>  >  >  
>  >  >    <wsdl:service name="TestServiceService"> 
>  >  >  
>  >  >       <wsdl:port
> binding="impl:TestServiceSoapBinding"
>  >  > name="TestService"> 
>  >  >  
>  >  >          <wsdlsoap:address
>  >  >
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  >  
>  >  >       </wsdl:port> 
>  >  >  
>  >  >    </wsdl:service> 
>  >  >  
>  >  > </wsdl:definitions> 
>  >  >  
>  >  > Here is the request: 
>  >  >  
>  >  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  >  > Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
>  >  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1
> Host:
>  >  > localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: ""
>  >  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <test
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <request> 
>  >  >                <userId xsi:nil="true"/> 
>  >  >             </request> 
>  >  >          </test> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  >  
>  >  >  
>  >  > Here is the response: 
>  >  >  
>  >  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu,
> 01
>  >  > Dec 1994 16:00:00 GMT Set-Cookie:
>  >  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  >  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  >  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US
> Connection:
>  >  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >  >    <soapenv:Envelope
>  >  >
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  >  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  >  >
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >  >       <soapenv:Body> 
>  >  >          <testResponse
>  >  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >  >             <testReturn> 
>  >  >                <testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>George</firstName> 
>  >  >                      <lastName>Washington</lastName> 
>  >  >                   </testArray> 
>  >  >                   <testArray> 
>  >  >                      <firstName>Ben</firstName> 
>  >  >                      <lastName>Franklin</lastName> 
>  >  >                   </testArray> 
>  >  >                </testArray> 
>  >  >             </testReturn> 
>  >  >          </testResponse> 
>  >  >       </soapenv:Body> 
>  >  >    </soapenv:Envelope> 
>  >  >  
>  >  > 
>  >  >  
>  >  >  
>  >  >   
>  >  > Thank you,
>  >  >  
>  >  >  Ken Katsma
>  >  >  J.P. Morgan Chase
>  >  >  Senior Application Development Analyst
>  >  >  Wholesale CRM/Core Services
>  >  >  312-954-8634
>  >  >  
>  >  > 
>  >  > ________________________________
>  >  > 
>  >  > 
>  >  >  
>  >  > 
>  >  >  This communication is for informational purposes only. It is not
>  > intended
>  >  > as an offer or solicitation for the purchase or sale of any financial
>  >  > instrument or as an official confirmation of any transaction. All
> market
>  >  > prices, data and other information are notwa rranted as to
> completeness
>  > or
>  >  > accuracy and are subject to change without notice. Any comments or
>  >  > statements made herein do not necessarily reflect those of J.P. Morgan
>  > Chase
>  >  > & Co., its subsidiaries and affiliates.
>  >  
>  >
>  
>

Re: Axis 1.2.1 -> .NET interop problem

Posted by ke...@jpmorgan.com.
I submitted another article on this subject where I found that it was 
related to multiple namespaces.  You asked me to submit a bug report, 
which I will do later today.

Thank you,

Ken Katsma
J.P. Morgan Chase
Application Architect
Wholesale CRM/Core Services



Kenneth R Katsma

Anne Thomas Manes <at...@gmail.com>
07/19/2005 07:20 PM
Please respond to axis-user
 
        To:     axis-user@ws.apache.org
        cc: 
        Subject:        Re: Axis 1.2.1 -> .NET interop problem


Quite possibly. What version of Axis are you using? We had a lot of
bugs dealing with arrays.

Anne

On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> 
wrote:
> 
> Anne, 
> 
> Thanks for your advice.  Can you tell me what is causing the extra 
testArray
> wrapper?  It's not clear to me how Axis is generating the extra wrapper 
if
> I'm not asking it to do so in the WSDL.  Is this a bug? 
> 
> Thank you,
> 
>  Ken Katsma
>  J.P. Morgan Chase
>  Senior Application Development Analyst
>  Wholesale CRM/Core Services
>  312-954-8634
> 
> 
> 
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/11/2005 02:32 PM 
> Please respond to axis-user 
>         To:        axis-user@ws.apache.org 
>         cc: 
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
> 
> 
> 
> Ken,
> 
>  Your response is fully qualified. The problem is that your response
>  contains an extra "testArray" wrapper. According to your schema, the
>  response should look like this:
> 
>       <soapenv:Body>
>          <testResponse
> xmlns="http://test.ckc.services.crm.jpmorgan.com">
>             <testReturn>
>                  <testArray>
>                      <firstName>George</firstName>
>                      <lastName>Washington</lastName>
>                   </testArray>
>                   <testArray>
>                      <firstName>Ben</firstName>
>                      <lastName>Franklin</lastName>
>                   </testArray>
>             </testReturn>
>          </testResponse>
>       </soapenv:Body>
>    </soapenv:Envelope>
> 
>  Anne
> 
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com 
<ke...@jpmorgan.com>
> wrote:
>  > 
>  > Hi,
>  > 
>  >  I've constructed a very simple test case in Java and am using 
Java2WSDL 
>  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 
for 
>  >  these tests and created the WSDL using document/wrapped.  The 
service 
>  >  works fine when using Axis as the client, but when connecting from 
.NET 
>  >  the response is not deserialized correctly.
>  > 
>  >  Microsoft has indicated that this is because Axis is not including 
the 
>  >  qualified namespace on the return elements.  Is this a bug/weakness 
in 
>  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  > 
>  >  Here is the wsdl, genereated from Java2WSDL and retrieved from the
> server 
>  >  with ?wsdl with the request and response below:
>  > 
>  > <?xml version="1.0" encoding="UTF-8"?> 
>  > <wsdl:definitions
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  > xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >    <element name="test"> 
>  >     <complexType> 
>  >      <sequence> 
>  >       <element name="request" type="impl:TestRequest"/> 
>  >      </sequence> 
>  > 
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestRequest"> 
>  >     <sequence> 
>  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <element name="testResponse"> 
>  >     <complexType> 
>  > 
>  >      <sequence> 
>  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >      </sequence> 
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestTO"> 
>  >     <sequence> 
>  >      <element name="firstName" nillable="true" type="xsd:string"/> 
>  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  > 
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="ArrayOfTestTO"> 
>  >     <sequence> 
>  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  > type="impl:TestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="TestResponse"> 
>  >     <sequence> 
>  > 
>  >      <element name="testArray" nillable="true"
> type="impl:ArrayOfTestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >   </schema> 
>  >  </wsdl:types> 
>  > 
>  >    <wsdl:message name="testResponse"> 
>  > 
>  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  > 
>  >    </wsdl:message> 
>  > 
>  >    <wsdl:message name="testRequest"> 
>  > 
>  >       <wsdl:part element="impl:test" name="parameters"/> 
>  > 
>  >    </wsdl:message> 
>  > 
>  >    <wsdl:portType name="TestService"> 
>  > 
>  >       <wsdl:operation name="test"> 
>  > 
>  >          <wsdl:input message="impl:testRequest" name="testRequest"/> 
>  > 
>  >          <wsdl:output message="impl:testResponse" 
name="testResponse"/> 
>  > 
>  >       </wsdl:operation> 
>  > 
>  >    </wsdl:portType> 
>  > 
>  >    <wsdl:binding name="TestServiceSoapBinding" 
type="impl:TestService"> 
>  > 
>  >       <wsdlsoap:binding style="document"
>  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  > 
>  >       <wsdl:operation name="test"> 
>  > 
>  >          <wsdlsoap:operation soapAction=""/> 
>  > 
>  >          <wsdl:input name="testRequest"> 
>  > 
>  >             <wsdlsoap:body use="literal"/> 
>  > 
>  >          </wsdl:input> 
>  > 
>  >          <wsdl:output name="testResponse"> 
>  > 
>  >             <wsdlsoap:body use="literal"/> 
>  > 
>  >          </wsdl:output> 
>  > 
>  >       </wsdl:operation> 
>  > 
>  >    </wsdl:binding> 
>  > 
>  >    <wsdl:service name="TestServiceService"> 
>  > 
>  >       <wsdl:port binding="impl:TestServiceSoapBinding"
>  > name="TestService"> 
>  > 
>  >          <wsdlsoap:address
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  > 
>  >       </wsdl:port> 
>  > 
>  >    </wsdl:service> 
>  > 
>  > </wsdl:definitions> 
>  > 
>  > Here is the request: 
>  > 
>  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  > Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
>  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 
Host:
>  > localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: 
""
>  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <test
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <request> 
>  >                <userId xsi:nil="true"/> 
>  >             </request> 
>  >          </test> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  > 
>  > 
>  > Here is the response: 
>  > 
>  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: 
Thu, 01
>  > Dec 1994 16:00:00 GMT Set-Cookie:
>  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US 
Connection:
>  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <testReturn> 
>  >                <testArray> 
>  >                   <testArray> 
>  >                      <firstName>George</firstName> 
>  >                      <lastName>Washington</lastName> 
>  >                   </testArray> 
>  >                   <testArray> 
>  >                      <firstName>Ben</firstName> 
>  >                      <lastName>Franklin</lastName> 
>  >                   </testArray> 
>  >                </testArray> 
>  >             </testReturn> 
>  >          </testResponse> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  > 
>  > 
>  > 
>  > 
>  > 
>  > Thank you,
>  > 
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  > 
>  > 
>  > ________________________________
>  > 
>  > 
>  > 
>  > 
>  >  This communication is for informational purposes only. It is not
> intended
>  > as an offer or solicitation for the purchase or sale of any financial
>  > instrument or as an official confirmation of any transaction. All 
market
>  > prices, data and other information are notwa rranted as to 
completeness
> or
>  > accuracy and are subject to change without notice. Any comments or
>  > statements made herein do not necessarily reflect those of J.P. 
Morgan
> Chase
>  > & Co., its subsidiaries and affiliates.
> 
>


Re: Axis 1.2.1 -> .NET interop problem

Posted by Anne Thomas Manes <at...@gmail.com>.
Quite possibly. What version of Axis are you using? We had a lot of
bugs dealing with arrays.

Anne

On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> wrote:
>  
> Anne, 
>  
> Thanks for your advice.  Can you tell me what is causing the extra testArray
> wrapper?  It's not clear to me how Axis is generating the extra wrapper if
> I'm not asking it to do so in the WSDL.  Is this a bug? 
>  
> Thank you,
>  
>  Ken Katsma
>  J.P. Morgan Chase
>  Senior Application Development Analyst
>  Wholesale CRM/Core Services
>  312-954-8634
>  
>  
>  
> Kenneth R Katsma 
>  Anne Thomas Manes <at...@gmail.com> 
> 
> 07/11/2005 02:32 PM 
> Please respond to axis-user         
>         To:        axis-user@ws.apache.org 
>         cc:         
>         Subject:        Re: Axis 1.2.1 -> .NET interop problem
>  
>  
>  
> Ken,
>  
>  Your response is fully qualified. The problem is that your response
>  contains an extra "testArray" wrapper. According to your schema, the
>  response should look like this:
>  
>       <soapenv:Body>
>          <testResponse
> xmlns="http://test.ckc.services.crm.jpmorgan.com">
>             <testReturn>
>                  <testArray>
>                      <firstName>George</firstName>
>                      <lastName>Washington</lastName>
>                   </testArray>
>                   <testArray>
>                      <firstName>Ben</firstName>
>                      <lastName>Franklin</lastName>
>                   </testArray>
>             </testReturn>
>          </testResponse>
>       </soapenv:Body>
>    </soapenv:Envelope>
>  
>  Anne
>  
>  On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com>
> wrote:
>  >  
>  > Hi,
>  >  
>  >  I've constructed a very simple test case in Java and am using Java2WSDL 
>  >  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for 
>  >  these tests and created the WSDL using document/wrapped.  The service 
>  >  works fine when using Axis as the client, but when connecting from .NET 
>  >  the response is not deserialized correctly.
>  >  
>  >  Microsoft has indicated that this is because Axis is not including the 
>  >  qualified namespace on the return elements.  Is this a bug/weakness in 
>  >  Axis?  Is there a work-around?  Am I doing something else wrong?
>  >  
>  >  Here is the wsdl, genereated from Java2WSDL and retrieved from the
> server 
>  >  with ?wsdl with the request and response below:
>  >  
>  > <?xml version="1.0" encoding="UTF-8"?> 
>  > <wsdl:definitions
>  >
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  > xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
>  > xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
>  > xmlns="http://www.w3.org/2001/XMLSchema"> 
>  >    <element name="test"> 
>  >     <complexType> 
>  >      <sequence> 
>  >       <element name="request" type="impl:TestRequest"/> 
>  >      </sequence> 
>  >  
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestRequest"> 
>  >     <sequence> 
>  >      <element name="userId" nillable="true" type="xsd:string"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <element name="testResponse"> 
>  >     <complexType> 
>  >  
>  >      <sequence> 
>  >       <element name="testReturn" type="impl:TestResponse"/> 
>  >      </sequence> 
>  >     </complexType> 
>  >    </element> 
>  >    <complexType name="TestTO"> 
>  >     <sequence> 
>  >      <element name="firstName" nillable="true" type="xsd:string"/> 
>  >      <element name="lastName" nillable="true" type="xsd:string"/> 
>  >  
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="ArrayOfTestTO"> 
>  >     <sequence> 
>  >      <element maxOccurs="unbounded" minOccurs="0" name="item"
>  > type="impl:TestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >    <complexType name="TestResponse"> 
>  >     <sequence> 
>  >  
>  >      <element name="testArray" nillable="true"
> type="impl:ArrayOfTestTO"/> 
>  >     </sequence> 
>  >    </complexType> 
>  >   </schema> 
>  >  </wsdl:types> 
>  >  
>  >    <wsdl:message name="testResponse"> 
>  >  
>  >       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  >  
>  >    </wsdl:message> 
>  >  
>  >    <wsdl:message name="testRequest"> 
>  >  
>  >       <wsdl:part element="impl:test" name="parameters"/> 
>  >  
>  >    </wsdl:message> 
>  >  
>  >    <wsdl:portType name="TestService"> 
>  >  
>  >       <wsdl:operation name="test"> 
>  >  
>  >          <wsdl:input message="impl:testRequest" name="testRequest"/> 
>  >  
>  >          <wsdl:output message="impl:testResponse" name="testResponse"/> 
>  >  
>  >       </wsdl:operation> 
>  >  
>  >    </wsdl:portType> 
>  >  
>  >    <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService"> 
>  >  
>  >       <wsdlsoap:binding style="document"
>  > transport="http://schemas.xmlsoap.org/soap/http"/> 
>  >  
>  >       <wsdl:operation name="test"> 
>  >  
>  >          <wsdlsoap:operation soapAction=""/> 
>  >  
>  >          <wsdl:input name="testRequest"> 
>  >  
>  >             <wsdlsoap:body use="literal"/> 
>  >  
>  >          </wsdl:input> 
>  >  
>  >          <wsdl:output name="testResponse"> 
>  >  
>  >             <wsdlsoap:body use="literal"/> 
>  >  
>  >          </wsdl:output> 
>  >  
>  >       </wsdl:operation> 
>  >  
>  >    </wsdl:binding> 
>  >  
>  >    <wsdl:service name="TestServiceService"> 
>  >  
>  >       <wsdl:port binding="impl:TestServiceSoapBinding"
>  > name="TestService"> 
>  >  
>  >          <wsdlsoap:address
>  >
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  >  
>  >       </wsdl:port> 
>  >  
>  >    </wsdl:service> 
>  >  
>  > </wsdl:definitions> 
>  >  
>  > Here is the request: 
>  >  
>  > POST /CKCServicesWEB/services/TestService HTTP/1.0
>  > Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
>  > application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 Host:
>  > localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: ""
>  > Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <test
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <request> 
>  >                <userId xsi:nil="true"/> 
>  >             </request> 
>  >          </test> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  >  
>  >  
>  > Here is the response: 
>  >  
>  > HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu, 01
>  > Dec 1994 16:00:00 GMT Set-Cookie:
>  > JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
>  > Cache-Control: no-cache="set-cookie,set-cookie2"
>  > Content-Type: text/xml; charset=utf-8 Content-Language: en-US Connection:
>  > close  <?xml version="1.0" encoding="utf-8"?> 
>  >    <soapenv:Envelope
>  >
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>  > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>  >       <soapenv:Body> 
>  >          <testResponse
>  > xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>  >             <testReturn> 
>  >                <testArray> 
>  >                   <testArray> 
>  >                      <firstName>George</firstName> 
>  >                      <lastName>Washington</lastName> 
>  >                   </testArray> 
>  >                   <testArray> 
>  >                      <firstName>Ben</firstName> 
>  >                      <lastName>Franklin</lastName> 
>  >                   </testArray> 
>  >                </testArray> 
>  >             </testReturn> 
>  >          </testResponse> 
>  >       </soapenv:Body> 
>  >    </soapenv:Envelope> 
>  >  
>  > 
>  >  
>  >  
>  >   
>  > Thank you,
>  >  
>  >  Ken Katsma
>  >  J.P. Morgan Chase
>  >  Senior Application Development Analyst
>  >  Wholesale CRM/Core Services
>  >  312-954-8634
>  >  
>  > 
>  > ________________________________
>  > 
>  > 
>  >  
>  > 
>  >  This communication is for informational purposes only. It is not
> intended
>  > as an offer or solicitation for the purchase or sale of any financial
>  > instrument or as an official confirmation of any transaction. All market
>  > prices, data and other information are notwa rranted as to completeness
> or
>  > accuracy and are subject to change without notice. Any comments or
>  > statements made herein do not necessarily reflect those of J.P. Morgan
> Chase
>  > & Co., its subsidiaries and affiliates.
>  
>

Re: Axis 1.2.1 -> .NET interop problem

Posted by ke...@jpmorgan.com.
Anne,

Thanks for your advice.  Can you tell me what is causing the extra 
testArray wrapper?  It's not clear to me how Axis is generating the extra 
wrapper if I'm not asking it to do so in the WSDL.  Is this a bug?

Thank you,

Ken Katsma
J.P. Morgan Chase
Senior Application Development Analyst
Wholesale CRM/Core Services
312-954-8634



Kenneth R Katsma

Anne Thomas Manes <at...@gmail.com>
07/11/2005 02:32 PM
Please respond to axis-user
 
        To:     axis-user@ws.apache.org
        cc: 
        Subject:        Re: Axis 1.2.1 -> .NET interop problem


Ken,

Your response is fully qualified. The problem is that your response
contains an extra "testArray" wrapper. According to your schema, the
response should look like this:

      <soapenv:Body>
         <testResponse xmlns="http://test.ckc.services.crm.jpmorgan.com">
            <testReturn>
                 <testArray>
                     <firstName>George</firstName>
                     <lastName>Washington</lastName>
                  </testArray>
                  <testArray>
                     <firstName>Ben</firstName>
                     <lastName>Franklin</lastName>
                  </testArray>
            </testReturn>
         </testResponse>
      </soapenv:Body>
   </soapenv:Envelope>

Anne

On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> 
wrote:
> 
> Hi,
> 
>  I've constructed a very simple test case in Java and am using Java2WSDL 

>  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for 
>  these tests and created the WSDL using document/wrapped.  The service 
>  works fine when using Axis as the client, but when connecting from .NET 

>  the response is not deserialized correctly.
> 
>  Microsoft has indicated that this is because Axis is not including the 
>  qualified namespace on the return elements.  Is this a bug/weakness in 
>  Axis?  Is there a work-around?  Am I doing something else wrong?
> 
>  Here is the wsdl, genereated from Java2WSDL and retrieved from the 
server 
>  with ?wsdl with the request and response below:
> 
> <?xml version="1.0" encoding="UTF-8"?> 
> <wsdl:definitions
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
> xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
> xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <element name="test"> 
>     <complexType> 
>      <sequence> 
>       <element name="request" type="impl:TestRequest"/> 
>      </sequence> 
> 
>     </complexType> 
>    </element> 
>    <complexType name="TestRequest"> 
>     <sequence> 
>      <element name="userId" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <element name="testResponse"> 
>     <complexType> 
> 
>      <sequence> 
>       <element name="testReturn" type="impl:TestResponse"/> 
>      </sequence> 
>     </complexType> 
>    </element> 
>    <complexType name="TestTO"> 
>     <sequence> 
>      <element name="firstName" nillable="true" type="xsd:string"/> 
>      <element name="lastName" nillable="true" type="xsd:string"/> 
> 
>     </sequence> 
>    </complexType> 
>    <complexType name="ArrayOfTestTO"> 
>     <sequence> 
>      <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="impl:TestTO"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="TestResponse"> 
>     <sequence> 
> 
>      <element name="testArray" nillable="true" 
type="impl:ArrayOfTestTO"/> 
>     </sequence> 
>    </complexType> 
>   </schema> 
>  </wsdl:types> 
> 
>    <wsdl:message name="testResponse"> 
> 
>       <wsdl:part element="impl:testResponse" name="parameters"/> 
> 
>    </wsdl:message> 
> 
>    <wsdl:message name="testRequest"> 
> 
>       <wsdl:part element="impl:test" name="parameters"/> 
> 
>    </wsdl:message> 
> 
>    <wsdl:portType name="TestService"> 
> 
>       <wsdl:operation name="test"> 
> 
>          <wsdl:input message="impl:testRequest" name="testRequest"/> 
> 
>          <wsdl:output message="impl:testResponse" name="testResponse"/> 
> 
>       </wsdl:operation> 
> 
>    </wsdl:portType> 
> 
>    <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService"> 
> 
>       <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/> 
> 
>       <wsdl:operation name="test"> 
> 
>          <wsdlsoap:operation soapAction=""/> 
> 
>          <wsdl:input name="testRequest"> 
> 
>             <wsdlsoap:body use="literal"/> 
> 
>          </wsdl:input> 
> 
>          <wsdl:output name="testResponse"> 
> 
>             <wsdlsoap:body use="literal"/> 
> 
>          </wsdl:output> 
> 
>       </wsdl:operation> 
> 
>    </wsdl:binding> 
> 
>    <wsdl:service name="TestServiceService"> 
> 
>       <wsdl:port binding="impl:TestServiceSoapBinding"
> name="TestService"> 
> 
>          <wsdlsoap:address
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
> 
>       </wsdl:port> 
> 
>    </wsdl:service> 
> 
> </wsdl:definitions> 
> 
> Here is the request: 
> 
> POST /CKCServicesWEB/services/TestService HTTP/1.0
> Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
> application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 Host:
> localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: ""
> Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>    <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>       <soapenv:Body> 
>          <test
> xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>             <request> 
>                <userId xsi:nil="true"/> 
>             </request> 
>          </test> 
>       </soapenv:Body> 
>    </soapenv:Envelope> 
> 
> 
> Here is the response: 
> 
> HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu, 
01
> Dec 1994 16:00:00 GMT Set-Cookie:
> JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
> Cache-Control: no-cache="set-cookie,set-cookie2"
> Content-Type: text/xml; charset=utf-8 Content-Language: en-US 
Connection:
> close  <?xml version="1.0" encoding="utf-8"?> 
>    <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>       <soapenv:Body> 
>          <testResponse
> xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>             <testReturn> 
>                <testArray> 
>                   <testArray> 
>                      <firstName>George</firstName> 
>                      <lastName>Washington</lastName> 
>                   </testArray> 
>                   <testArray> 
>                      <firstName>Ben</firstName> 
>                      <lastName>Franklin</lastName> 
>                   </testArray> 
>                </testArray> 
>             </testReturn> 
>          </testResponse> 
>       </soapenv:Body> 
>    </soapenv:Envelope> 
> 
> 
> 
> 
> 
> Thank you,
> 
>  Ken Katsma
>  J.P. Morgan Chase
>  Senior Application Development Analyst
>  Wholesale CRM/Core Services
>  312-954-8634
> 
> 
> ________________________________
> 
> 
> 
> 
>  This communication is for informational purposes only. It is not 
intended
> as an offer or solicitation for the purchase or sale of any financial
> instrument or as an official confirmation of any transaction. All market
> prices, data and other information are notwa rranted as to completeness 
or
> accuracy and are subject to change without notice. Any comments or
> statements made herein do not necessarily reflect those of J.P. Morgan 
Chase
> & Co., its subsidiaries and affiliates.




-----------------------------------------
This communication is for informational purposes only. It is not intended
as an offer or solicitation for the purchase or sale of any financial
instrument or as an official confirmation of any transaction. All market
prices, data and other information are notwa rranted as to completeness or
accuracy and are subject to change without notice. Any comments or
statements made herein do not necessarily reflect those of J.P. Morgan
Chase & Co., its subsidiaries and affiliates.

Re: Axis 1.2.1 -> .NET interop problem

Posted by Anne Thomas Manes <at...@gmail.com>.
Ken,

Your response is fully qualified. The problem is that your response
contains an extra "testArray" wrapper. According to your schema, the
response should look like this:

      <soapenv:Body>
         <testResponse xmlns="http://test.ckc.services.crm.jpmorgan.com">
            <testReturn>
                 <testArray>
                     <firstName>George</firstName>
                     <lastName>Washington</lastName>
                  </testArray>
                  <testArray>
                     <firstName>Ben</firstName>
                     <lastName>Franklin</lastName>
                  </testArray>
            </testReturn>
         </testResponse>
      </soapenv:Body>
   </soapenv:Envelope>

Anne

On 7/11/05, kenneth.r.katsma@jpmorgan.com <ke...@jpmorgan.com> wrote:
>  
> Hi,
>  
>  I've constructed a very simple test case in Java and am using Java2WSDL 
>  and WSDL2Java to create the wsdl and stubs.  I'm using Axis 1.2.1 for 
>  these tests and created the WSDL using document/wrapped.  The service 
>  works fine when using Axis as the client, but when connecting from .NET 
>  the response is not deserialized correctly.
>  
>  Microsoft has indicated that this is because Axis is not including the 
>  qualified namespace on the return elements.  Is this a bug/weakness in 
>  Axis?  Is there a work-around?  Am I doing something else wrong?
>  
>  Here is the wsdl, genereated from Java2WSDL and retrieved from the server 
>  with ?wsdl with the request and response below:
>  
> <?xml version="1.0" encoding="UTF-8"?> 
> <wsdl:definitions
> targetNamespace="http://test.ckc.services.crm.jpmorgan.com"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://test.ckc.services.crm.jpmorgan.com"
> xmlns:intf="http://test.ckc.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://test.ckc.services.crm.jpmorgan.com"
> xmlns="http://www.w3.org/2001/XMLSchema"> 
>    <element name="test"> 
>     <complexType> 
>      <sequence> 
>       <element name="request" type="impl:TestRequest"/> 
>      </sequence> 
>  
>     </complexType> 
>    </element> 
>    <complexType name="TestRequest"> 
>     <sequence> 
>      <element name="userId" nillable="true" type="xsd:string"/> 
>     </sequence> 
>    </complexType> 
>    <element name="testResponse"> 
>     <complexType> 
>  
>      <sequence> 
>       <element name="testReturn" type="impl:TestResponse"/> 
>      </sequence> 
>     </complexType> 
>    </element> 
>    <complexType name="TestTO"> 
>     <sequence> 
>      <element name="firstName" nillable="true" type="xsd:string"/> 
>      <element name="lastName" nillable="true" type="xsd:string"/> 
>  
>     </sequence> 
>    </complexType> 
>    <complexType name="ArrayOfTestTO"> 
>     <sequence> 
>      <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="impl:TestTO"/> 
>     </sequence> 
>    </complexType> 
>    <complexType name="TestResponse"> 
>     <sequence> 
>  
>      <element name="testArray" nillable="true" type="impl:ArrayOfTestTO"/> 
>     </sequence> 
>    </complexType> 
>   </schema> 
>  </wsdl:types> 
>  
>    <wsdl:message name="testResponse"> 
>  
>       <wsdl:part element="impl:testResponse" name="parameters"/> 
>  
>    </wsdl:message> 
>  
>    <wsdl:message name="testRequest"> 
>  
>       <wsdl:part element="impl:test" name="parameters"/> 
>  
>    </wsdl:message> 
>  
>    <wsdl:portType name="TestService"> 
>  
>       <wsdl:operation name="test"> 
>  
>          <wsdl:input message="impl:testRequest" name="testRequest"/> 
>  
>          <wsdl:output message="impl:testResponse" name="testResponse"/> 
>  
>       </wsdl:operation> 
>  
>    </wsdl:portType> 
>  
>    <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService"> 
>  
>       <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/> 
>  
>       <wsdl:operation name="test"> 
>  
>          <wsdlsoap:operation soapAction=""/> 
>  
>          <wsdl:input name="testRequest"> 
>  
>             <wsdlsoap:body use="literal"/> 
>  
>          </wsdl:input> 
>  
>          <wsdl:output name="testResponse"> 
>  
>             <wsdlsoap:body use="literal"/> 
>  
>          </wsdl:output> 
>  
>       </wsdl:operation> 
>  
>    </wsdl:binding> 
>  
>    <wsdl:service name="TestServiceService"> 
>  
>       <wsdl:port binding="impl:TestServiceSoapBinding"
> name="TestService"> 
>  
>          <wsdlsoap:address
> location="http://localhost:9080/CKCServicesWEB/services/TestService"/>
>  
>       </wsdl:port> 
>  
>    </wsdl:service> 
>  
> </wsdl:definitions> 
>  
> Here is the request: 
>  
> POST /CKCServicesWEB/services/TestService HTTP/1.0
> Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml,
> application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 Host:
> localhost:2000 Cache-Control: no-cache Pragma: no-cache SOAPAction: ""
> Content-Length: 367  <?xml version="1.0" encoding="UTF-8"?> 
>    <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>       <soapenv:Body> 
>          <test
> xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>             <request> 
>                <userId xsi:nil="true"/> 
>             </request> 
>          </test> 
>       </soapenv:Body> 
>    </soapenv:Envelope> 
>  
>  
> Here is the response: 
>  
> HTTP/1.1 200 OK Server: WebSphere Application Server/5.1 Expires: Thu, 01
> Dec 1994 16:00:00 GMT Set-Cookie:
> JSESSIONID=0000_AVVKTC5yzeGJJTLWDPn2n8:-1;Path=/
> Cache-Control: no-cache="set-cookie,set-cookie2"
> Content-Type: text/xml; charset=utf-8 Content-Language: en-US Connection:
> close  <?xml version="1.0" encoding="utf-8"?> 
>    <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
>       <soapenv:Body> 
>          <testResponse
> xmlns="http://test.ckc.services.crm.jpmorgan.com"> 
>             <testReturn> 
>                <testArray> 
>                   <testArray> 
>                      <firstName>George</firstName> 
>                      <lastName>Washington</lastName> 
>                   </testArray> 
>                   <testArray> 
>                      <firstName>Ben</firstName> 
>                      <lastName>Franklin</lastName> 
>                   </testArray> 
>                </testArray> 
>             </testReturn> 
>          </testResponse> 
>       </soapenv:Body> 
>    </soapenv:Envelope> 
>  
> 
>  
>  
>   
> Thank you,
>  
>  Ken Katsma
>  J.P. Morgan Chase
>  Senior Application Development Analyst
>  Wholesale CRM/Core Services
>  312-954-8634
>  
> 
> ________________________________
> 
> 
>  
> 
>  This communication is for informational purposes only. It is not intended
> as an offer or solicitation for the purchase or sale of any financial
> instrument or as an official confirmation of any transaction. All market
> prices, data and other information are notwa rranted as to completeness or
> accuracy and are subject to change without notice. Any comments or
> statements made herein do not necessarily reflect those of J.P. Morgan Chase
> & Co., its subsidiaries and affiliates.