java调用别人的webservice接口 soap

本文转载自:https://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_4.html

未见不允许转载提示,如有冒犯,请联系作者删除!!!

邮箱:dewffgqd@163.com

亲测有效!!!

 

第四种使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值