You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by "Schweigl, Johann" <Jo...@softwareag.com> on 2001/12/03 11:45:18 UTC

AW: How to set params with multiple names and values ?

I had a similar problem which disallowed an additional encapsulation of
parameters - simply because the SOAP requests were already defined by the
remote system. In this case I chose to drop Apache SOAP and do it by hand,
and haven't found a solution since then. 

Either I did not understand the right way to do it (maybe with own
serializers/deserializers?) or this is a design flaw - you simply can't
assume that the body of a SOAP request has only one local root.

-- Johann

-----Ursprungliche Nachricht-----
Von: Richard Boehme [mailto:boehme@acm.jhu.edu]
Gesendet: Freitag, 30. November 2001 16:29
An: Soap User; Vinod Soni
Betreff: Re: How to set params with multiple names and values ?


What about enclosing the parameters in a parameter, something like this?
(my synatax may be  a bit off)...

Parameter params2[2] = { new Parameter("param2A", String.class,
"param2A", null), new Parameter("param2B", String.class, "param2B", null)
}
params.addElement(new Parameter("param2", Parameter[].class, params2,
null));

--Richard


On Fri, 30 Nov 2001, Vinod Soni wrote:

> Hi,
>
> I have this little query. If I want to pass simple String params in a SOAP
call, I do something like this:
>
> Vector params = new Vector();
> params.addElement(new Parameter("param1", String.class, "param1", null));
> params.addElement(new Parameter("param2", String.class, "param2", null));
> call.setParams(params);
>
> and the XML envelope comtains something like:
> <ns1:methodname xml:ns1="urn:XYZ" .....>
>     <param1 xsi:type="xsd:string">param1</param1>
>     <param2 xsi:type="xsd:string">param2</param1>
> </ns1:methodname>
>
> But now, I want the XML envelope to look something like this:
> <ns1:methodname xml:ns1="urn:XYZ".....>
>     <params>
>         <param1 xsi:type="xsd:string">param1</param1>
>         <param2>
>             <param2A name='attribute1' type='type1'
multi='no'>value1</param2A>
>             <param2A name='attribute2' type='type2' multi='yes'>value2a;
value2b; value2c</param2A>
>         </param2>
> </ns1:methodname>
>
> Can anyone sugguest me how can I do that by setting params in the Call
object ?
>
> TIA
> Vinod.
>