axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Börkel <...@ap-ag.com>
Subject HowTo use an untyped primitive array as parameter (not using proxies)?
Date Thu, 18 Sep 2003 13:01:21 GMT
HI!

If I am not using a proxy and I use call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE) then
Axis sends the parameters untyped like this:
  <parameterTest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <arg0>1</arg0>
   <arg1>2</arg1>
   <arg2>3.5</arg2>
   <arg3>Test</arg3>
   <arg4>true</arg4>
  </parameterTest>


So far, so good. But how about arrays? If I have a primitive array as parameter, Axis always
does typing like this:
  <arrayTest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <arg0 soapenc:arrayType="xsd:string[3]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <item>1</item>
    <item>2</item>
    <item>3</item>
   </arg0>
  </arrayTest>

Or like this:
  <arrayTest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <arg0 soapenc:arrayType="xsd:anyType[3]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <item xsi:type="xsd:string">1</item>
    <item xsi:type="xsd:string">2</item>
    <item xsi:type="xsd:string">3</item>
   </arg0>
  </arrayTest>

I have tried:
    call.invoke(new String[]{"1", "2", "3.5", "Test", "true"});
and
    call.invoke(new Object[]{new Object[]{"1", "2", "3"}});


Is there a way to send arrays completely untyped, too? So that the server converts it to the
correct type?

Thanks!

Regards,
Thomas


Mime
View raw message