使用axis调用wsdl接口

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());
        }
    }

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

时间: 2024-10-19 08:24:30

使用axis调用wsdl接口的相关文章

C# 不添加WEB引用调用WSDL接口

在项目中添加WEB引用耦合度较高,更新时要更新引用,所以我建议不添加WEB引用调用WSDL接口,废话不多说,直接上代码 例如WSDL地址为:http://XXX.XX.XXX.XXX:9115/WsPortal/soap/ws?WSDL    需要调用execute方法  先查看描述文件参数 /// <summary> /// 需要WebService支持Post调用 /// </summary> public static XmlDocument QueryPostWebServ

java调用wsdl接口

前提: ① 已经提供了一个wsdl接口 ② 该接口能正常调用 步骤1:使用cxf的wsdl2java工具生成本地类 下载CXF:http://cxf.apache.org/download.html 配置环境变量: CXF_HOME=E:\WebService\CXF\apache-cxf-2.1.1\apache-cxf-2.1.1 PATH后追加上“ ;%CXF_HOME%\bin” 验证:cmd命令行中输入wsdl2java,如果显示其用法表示配置好了. 运行命令 : wsdl2java 

java 调用wsdl接口同时将返回数据解析成json

package com.haiersoft.ushequmobile.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.util.List; import java.util.Map; imp

C#/Java 调用WSDL接口及方法

一.C#利用vs里面自带的"添加web引用"功能: 1.首先需要清楚WSDL的引用地址  如:http://www.webxml.com.cn/Webservices/WeatherWebService.asmx 2.在.Net项目中,添加web引用. 3.在弹出页面中,输入URL->点击点击绿色图标(前往)按钮->自定义引用名->点击添加引用 4.添加成功,查看类中可调用的方法: 5.在项目中,调用wsdl中的方法. [csharp] view plain copy

【黑马Android】(14)webservice概念/调用/wsdl接口

webservice 的概念 webservice 就是一个应用程序,它提供一种通过web方式访问的api. 解决两个系统或者(应用程序)之间的远程调用..... 调用是跨语言,跨平台... webservice 最基本的组成部分就是客户端,服务端... MyServerSocket.java package cn.itcast.server; import java.io.IOException; import java.io.InputStream; import java.net.Serv

PHP调用wsdl接口实例化SoapClient抛出异常

异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load external entity "http://****?wsdl". 本地调用接口正常,放到服务器上以后,出现了500错误.try{}cache(){}: try{          $client=new SoapClient($wsdl);        }catch(Exception $e){

利用axis调用webservice接口

一.首先把wsdl文件放入eclipse中某个项目中的src目录下 二.右键弹出webservice,然后点击webservice菜单,选中genernator client ,选择axis生成Java文件 三,然后调用. 调用说明(其中一种的调用方式): DHSFServiceLocator service = new DHSFServiceLocator();  service.setDH_spcSF_spcIntegration_spcServiceWSDDServiceName("Acc

python2.7调用wsdl接口

import suds url = "http://x.x.x.x:x/dcmsWebservice/webservice/phoneQueue?wsdl"client = suds.client.Client(url)phone = client.service['phoneQueue'].queueRegin('xxxx')print clientprint phone

Axis 调用.net WebServic接口出现:验证消息的安全性时发生错误

解决方法:call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS); 参考:http://www.blogjava.net/andy199999/ 异常内容: AxisFault faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity faultS