Java使用最简单的方式调用webService接口(WSDL)

一,引入pom依赖

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>

<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxrpc</artifactId>
    <version>1.1</version>
</dependency>

二,话不多说上代码

/**
 * webService调用接口(特别注意Call 的包和Service的包不要引错)
 *
 * @param wbURL             webservice地址
 * @param interfaceSpace    接口命名空间
 * @param interfaceName     接口名称
 * @param parameterSpaceURL 参数命名空间
 * @param parameter         参数名称
 * @param param             传递参数
 * @return
 */
public static String getPostResponse(String wbURL,
                                     String interfaceSpace, String interfaceName,
                                     String parameterSpaceURL, String parameter,
                                     JSONObject param) {
    String result = "";
    try {
        logger.info(interfaceName + "_param:" + param.toString());
        org.apache.axis.client.Service service = new org.apache.axis.client.Service();
        org.apache.axis.client.Call call = (Call) service.createCall();
        call.setTargetEndpointAddress(wbURL);
        call.setOperationName(new QName(interfaceSpace, interfaceName)); // 设置要调用哪个方法
        call.addParameter(new QName(parameterSpaceURL, parameter), // 设置要传递的参数
                org.apache.axis.encoding.XMLType.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// (标准的类型)
        call.setUseSOAPAction(true);//是否使用soap协议
        call.setSOAPActionURI(interfaceSpace + interfaceName);
        call.setTimeout(10000);//设置超时
        result = call.invoke(new Object[]{param.toString()}).toString();// 调用方法并传递参数
        //result为请求结果,格式具体看提供方的返回,比如说JSON
        logger.info("---------------" + result + "------------");
    } catch (Exception ex) {
        logger.error(ex);
    }
    return result;
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值