码迷,mamicode.com
首页 > 其他好文 > 详细

使用axis调用wsdl接口

时间:2019-05-12 15:54:54      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:int   启动   str   另一个   logging   查询   cep   eclips   搜索   

1、需要用到的jar包如下:

axis.jar、axis-ant.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar

2、调用代码举例如下

    /**
     * 查询用户手机信息
     * 这个接口是网上免费提供的接口,需要电脑联网才能访问
     */
    public static void getMobileCodeInfo(){
        String endpoint = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl";
        String nameSpace = "http://WebXml.com.cn/";
        String method = "getMobileCodeInfo";
        try {
            //新建服务
            Service service = new Service();
            //生成客户端
            Call call = (Call) service.createCall();
            //配置endpoint
            call.setTargetEndpointAddress(new URL(endpoint));
            //配置命名空间和方法
            call.setOperationName(new QName(nameSpace,method));
            //配置参数名和参数值
            call.addParameter(new QName(nameSpace,"mobileCode"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(nameSpace,"userID"), XMLType.XSD_STRING, ParameterMode.IN);
            Object[] paramValues = new Object[]{"18705187159",""};
            //设置返回值类型
            call.setReturnType(XMLType.XSD_STRING);
            //SoapAction的配置,在浏览器url中输入wsdl,在结果中搜索soapAction,如果有值,则需要设置,如果没有值,则设不设都行
            call.setUseSOAPAction(true);
            call.setSOAPActionURI(nameSpace+method);
            //调用接口
            String result = (String) call.invoke(paramValues);
            
            System.out.println("result->"+result); //result->18705187159:江苏 南京 江苏移动全球通卡
        } catch (Exception e) {
            System.out.println("接口getMobileCodeInfo调用失败!异常信息如下:");
            System.out.println(e.toString());
        }
    }
  /**
     * 查询实体类集合json
     * 这个接口是我自己在另一个eclipse中构造的接口,需要另一个项目中接口程序启动才能访问
     */
    public static void listBeanTest(){
        String endpoint = "http://localhost:8080/test2?wsdl";
        String nameSpace = "http://webservice.ws.glaway.com/";
        String method = "listBeanTest";
        try {
            //新建服务
            Service service = new Service();
            //生成客户端
            Call call = (Call) service.createCall();
            //配置endpoint
            call.setTargetEndpointAddress(new URL(endpoint));
            //配置命名空间和方法
            call.setOperationName(new QName(nameSpace,method));
            //配置参数名和参数值
            Object[] paramValues = new Object[0];
            //设置返回值类型
            call.setReturnType(XMLType.XSD_STRING);
            //SoapAction的配置,在浏览器url中输入wsdl,在结果中搜索soapAction,如果有值,则需要设置,如果没有值,则设不设都行
//            call.setUseSOAPAction(true);
//            call.setSOAPActionURI(nameSpace+method);
            //调用接口
            String result = (String) call.invoke(paramValues);
            
            System.out.println("result->"+result); //result->{"code":"success","data":[{"age":25,"name":"1"},{"age":8,"name":"2"}]}

        } catch (Exception e) {
            System.out.println("接口listBeanTest调用失败!异常信息如下:");
            System.out.println(e.toString());
        }
    }

 

使用axis调用wsdl接口

标签:int   启动   str   另一个   logging   查询   cep   eclips   搜索   

原文地址:https://www.cnblogs.com/wf2010517141/p/10852270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!