Thanks for the info.
I will give it a shot.
-Suresh
On Wed, 2 Feb 2005 14:14:25 -0600, Brown, Mike
<[EMAIL PROTECTED]> wrote:
> Currently Axis does not support vectors (that may change when they support
> JDK 1.5 which has generic-based vectors).
>
> They do accept arrays of objects but the array has to be of a specific type.
> Now you can in theory make a generic type (let's call it WSParam). Your
> WSParam would have a getter/setter called ParamType which would be an int
> value that gives you the type of parameter (int, String, etc.) that the
> WSParam wraps.
>
> Then you can have setters and getters for each of the possible parameter
> types. Let's say your WSParam is wrapping a String. You'd create the WSParam
> by saying
>
> WSParam myParam=new WSParam(ParamType.STRING, strValue);
>
> The WSParam constructor would look something like this
>
> Public WSParam(int paramType, Object value)
> {
> setParamType(paramType);
> switch (paramType)
> {
> case ParamType.STRING:
> setString(value);
> break;
> case ParamType.INTEGER:
> setInteger(value);
> break;
> //and so on for each type that it supports etc...
>
> }
>
> You can then create an array of WSParams and pass that to your call. This
> setup would support complex types as well. And Axis will be able to
> serialize/deserialize your parameters appropriately.
>
> Hope this helps.
>
> Michael
>
> -----Original Message-----
> From: Suresh Avadhanula [mailto:[EMAIL PROTECTED] ]
> Sent: Tuesday, February 01, 2005 3:18 PM
> To: [EMAIL PROTECTED]
> Subject: How to serialize elements of Vector independently in Axis
>
> Hi,
>
> I am integrating axis to existing product where we can expose some
> webservices and send/recieve SOAP messages. We have our own configuration
> files instead of WSDL that would expose the services as Webservices. Hence I
> cannot use WSDL2Java to generate stubs for axis.
>
> We have generic methods
>
> public Vector callOperation ( Vector params).
>
> Any services that needs to be exposed as webservice implements this method.
> The vector of params that is passed as argument can contain regular java
> type params and/or attachments.
>
> I am expecting the wire format of the SOAPBody would be
>
> <calloperation>
> <Params>
> <vector param 1 ../>
> <vector attachment param2 .. />
> ...
> </Params>
> </calloperation>
>
> My question is , if I call
>
> Call.invoke ( params ) // where params => vector of params
>
> after setting all the necessary properties in Call object like operationName
> etc, will Axis go through each object, find out if its a regurlar java
> object or attachement and call serialization accordingly?
> Should the vector contain objects of any specific type ( ala RPCParam
> ) for it serialize each objects properly? In all the examples, I see that
> each argument to the webservice method is set separately and passed as
> Object[] to Call.invoke(), which goes through each objects, converts it to
> RPCParam and serialize it finally. In my case, the only object that would be
> passed to Call.invoke() would be a vector.
>
> Any information ( or pointers to it ) as to how to serialize/deserialize
> each object of the Vector will be very helpful.
>
> Thanks
>