Hi Jerome,

i'm setting parameters to the SOAP call through calling the method call.addParameter() and set all parameters when calling
call.invoke( new Object[]{parm1, parm2, ..} ).


May have a look at the userguide examples which you can find at <axis-dir>/samples/userguide (e.g. Example2).

regards

Reinhard

Jerome Baumgarten wrote:

Hi,

I'm trying to make a call to a Web Service and specify the type for every
parameter. To make the call I use the following code :

                Service service = new Service();
                Call call = null;
                try {
                        call = (Call) service.createCall();
                } catch (ServiceException SEx) {
                        logger.warning(
                                "Caught ServiceException while creating a
new SOAP Call\n"
                                        + SEx.getLocalizedMessage());
                        return null;
                }
                call.setTargetEndpointAddress(sc.getEndpointURL());

                //make the SOAP body
                SOAPBodyElement requestBody = new SOAPBodyElement();
                requestBody.setName(sc.getMethodName());
                requestBody.setNamespaceURI(sc.getNamespaceURI());

//add children for parameters
try {
for (int i = 0; i < params.length; i++) {
SOAPBodyElement soapBEParam =
params[i].makeSOAPBodyElement();

soapBEParam.setType(org.apache.axis.Constants.XSD_STRING);
try {
logger.finest("***** TESTING
*****\n" + DOMSerializer.Serialize(soapBEParam.getAsDocument())); } catch (Exception e) {
e.printStackTrace();
}
requestBody.addChildElement(soapBEParam);
}
} catch (SOAPException SOAPEx) {
logger.warning(
"Caught a SOAPException while adding
parameters to the SOAPBodyElement\n"
+ SOAPEx.getLocalizedMessage());
return null;
}


But it seems to me that the type is not set. Is it the right method ? I also
tried by adding an xsi:type attribute but with no luck.

Regards,
Jerome



Reply via email to