[ https://issues.apache.org/jira/browse/AXIS-2804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nagesh Bhagwat updated AXIS-2804: --------------------------------- Summary: Axis 1.4 library method return result which is incompatible with .net (was: Axis 1.4 library method return result with are incompatible with .net) > Axis 1.4 library method return result which is 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 > Original Estimate: 0h > Remaining Estimate: 0h > > 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"><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.