代码改变世界

webService调用浅谈(四)

2015-10-22 10:21  D_L  阅读(11860)  评论(0编辑  收藏  举报

第四种使用java语言调用webservice方法如下:

第四种方法引入的包为axis的包

import org.apache.axis.*

下面是测试代码:

public String test() throws Exception
 {

//接收返回值
 String result ="";

//实例化访问对象
 Service service = new Service();   

//实例化调用对象
    Call call = (Call) service.createCall();

//在调用对象中添加webservice地址
    call.setTargetEndpointAddress(new java.net.URL(webServiceURL));  

//在调用对象中添加webservice对应的命名空间,以及将要调用的函数名
    call.setOperationName(new QName(namespace,operationName));

//设置入参,第一个参数是命名空间以及参数名,这两个参数是采用一个Qname变量打包传入的,第二个参数是入参的类型(字符或者数字)第三个参数是入参种类

//“IN”的含义代表入参
    call.addParameter(new QName(namespace,"para1"),
           org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

//第二个参数与前面一样
    call.addParameter(new QName(namespace,"para2"),
           org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

//是否是soapaction这里需要看webservice是否要求如下格式,如果没有要求可以不添加此设置

    call.setUseSOAPAction(true);

//设置返回值格式(字符串或者组装对象)
    call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);

//如果前面要求是soapaction的话需要添加下面这句话,用来之中是访问那个命名空间上的那个方法
    call.setSOAPActionURI(namespace + "/" + operationName);

//调用,参入两个入参para1和para2的值,并且将返回值转换为String类型
    result = call.invoke(new Object[]{para1,para2}).toString();
    return result;
 }

下面是前三种调用方式的传送门:

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_3.html

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_2.html

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_1.html