webService配合org.apache.axis.client.Call 调用服务端

需要导入的axis.jar包,

  org.apache.axis.client.Service service = new Service();

//生成客户端

  org.apache.axis.client.Call call = (Call)service.createCall();

//设置url(注意需要生成一个net 包下的URL对象而不是字符串

   call .setTargetEndpointAddress(new URL(url字符串));

//设置是否使用SoapAction

    call .setUseSOAPAction(true);

//设置SoapAction路径一般我发布服务类的的全路径名倒叙加上发布的方法

    call.setSOAPActionURI(targetNamespace+method);

//设置targetNamespace  和 method;

    call.setOperationName(targetNamespace  ,method);

//设置请求参数(根据服务端需要的参数设置例如需要一个参数名为Name的String类型)IN为输入 out 为输出 INOUT为输入输出

call.addParameter(new QName(targetNamespace, "Name"), 

org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

//设置返回数据类型(SOAP_VECTOR为数组具体类型自行百度)

call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);

//调用webService获得返回的数据 转入一个Object[]数组,数组的元素就是转入参数的值

Object invoke = createCall.invoke(new Object[]{"harry"});

你可能感兴趣的:(JAVA,WebService)