axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nagesh Bhagwat (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Created: (AXIS-2804) Axis 1.4 library method return result with are incompatible with .net
Date Fri, 04 Sep 2009 04:56:57 GMT
Axis 1.4 library method return result with are incompatible with .net
---------------------------------------------------------------------

                 Key: AXIS-2804
                 URL: https://issues.apache.org/jira/browse/AXIS-2804
             Project: Axis
          Issue Type: Bug
    Affects Versions: 1.4
         Environment: All the Platform
            Reporter: Nagesh Bhagwat
            Priority: Blocker


Currently IBM Tivoli Directory Integrator v6.1.1 ships the Axis 1.4 Library.
We have an web Service, One of web service method requires "String of Array" as an Argument.

We get the parameter using following API

ParameterDesc param = (ParameterDesc) parameters.get(i);

Param = 

name:       userNames
typeEntry:  null
mode:       IN
position:   3
isReturn:   false
typeQName:  {http://www.opsware.com/osapi/2.2/com/opsware/ws/ejb/SecurityWebService}ArrayOf_xsd_string
javaType:   null
inHeader:   false
outHeader:  false


When we pass this parameter to Axis method for setting the Parameter description as follow

rpcParam.setParamDesc(param);

rpcParam Value before execution :-

rpcParam = <userNames soapenc:arrayType="xsd:string[4]" xsi:type="soapenc:Array" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><userNames
xsi:type="xsd:string">s1</userNames><userNames xsi:type="xsd:string">s2</userNames><userNames
xsi:type="xsd:string">s3</userNames><userNames xsi:type="xsd:string">s4</userNames></userNames>


rpcParam Value After execution:-

rpcParam = <userNames soapenc:arrayType="ns1:ArrayOf_xsd_string[4]" xsi:type="soapenc:Array"
xmlns:ns1="http://www.opsware.com/osapi/2.2/com/opsware/ws/ejb/SecurityWebService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><userNames xsi:type="xsd:string"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">s1</userNames><userNames xsi:type="xsd:string"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">s2</userNames><userNames xsi:type="xsd:string"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">s3</userNames><userNames xsi:type="xsd:string"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">s4</userNames></userNames>


So the Above API which is generated SOAP Envelop in this format, which not not compatible
with Web Service that we are using it.

Resultant SOAP Request generated by TDI 6.1.1 is 

Request :-

<?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>
  <ns1:assignUsers soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://www.opsware.com/osapi/2.2/com/opsware/ws/ejb/SecurityWebService">
   <adminUserName xsi:type="xsd:string">tsh8069</adminUserName>
   <adminPassword xsi:type="xsd:string">opsware</adminPassword>
   <roleName xsi:type="xsd:string">ITIM Test Role</roleName>
   <userNames soapenc:arrayType="ns1:ArrayOf_xsd_string[1]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <userNames xsi:type="xsd:string">traceyh</userNames>
   </userNames>
  </ns1:assignUsers>
 </soapenv:Body>
</soapenv:Envelope>

Response :-

<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>
      <soapenv:Fault>
         <faultcode>soapenv:Client</faultcode>
         <faultstring>No such operation 'assignUsers'</faultstring>
         <detail/>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>


Where are in case of IBM Tivoli Directory Integrator 6.0, which ships Axis 1.1 Library with
it.

API - rpcParam.setParamDesc(param);

This doesn't change the SOAP Envelop format after the execution of this API

Resultant SOAP generation in case of Axis 1.1 is 

Request :-

<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>
  <ns1:assignUsers xmlns:ns1="http://www.opsware.com/osapi/2.2/com/opsware/ws/ejb/SecurityWebService">
   <adminUserName xsi:type="xsd:string">tsh8069</adminUserName>
   <adminPassword xsi:type="xsd:string">opsware</adminPassword>
   <roleName xsi:type="xsd:string">ITIM Test Role</roleName>
   <userNames xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <item>traceyh1</item>
   </userNames>
  </ns1:assignUsers>
 </soapenv:Body>
</soapenv:Envelope>

Response;-
<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 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <ns1:assignUsersResponse xmlns:ns1="http://www.opsware.com/osapi/2.2/com/opsware/ws/ejb/SecurityWebService">
         <assignUsersResponse xsi:type="xsd:string">&lt;ITIM Test Role> was assigned
to users [traceyh1]</assignUsersResponse>
      </ns1:assignUsersResponse>
   </soapenv:Body>
</soapenv:Envelope>


>From this its clear that, axis 1.1 does work fine but axis 1.4 has some incompatibility
issue with .net specially when we are passing String Array as argument to web service.





-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message