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
