Java 使用Axis调用WebService的示例代码

 更新时间:2020年09月28日 09:47:19   作者:H.U.C-王子  
这篇文章主要介绍了Java 使用Axis调用WebService的示例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/** 
* @ClassName: TestAxis 
* @Description: TODO(描述这个类的作用) 
* @author huc
* 
*/ 

public class TestAxis {
  public static void main(String []args){
    String inConditions = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ROWS><INFO><SBM>*</SBM></INFO><ROW><GMSFHM>公民身份号码</GMSFHM><XM>姓名</XM></ROW><ROW><GMSFHM>110101******</GMSFHM><XM>李闻</XM><FSD>100600</FSD><YWLX>个人贷款</YWLX></ROW><ROW><GMSFHM>3624221952123***</GMSFHM><XM>李一闻</XM><FSD>100600</FSD><YWLX>个人贷款</YWLX></ROW><ROW><GMSFHM>1234********</GMSFHM><XM>王龙</XM><FSD>100600</FSD><YWLX>银行开户</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>个人车贷</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX></YWLX></ROW><ROW><GMSFHM>230602***</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>个人车贷</YWLX></ROW></ROWS>";
    String inLicense = "********"; 
     try{    
        //调用webservice地址   
        String url = "https://www.****.com/services/NciicServices";           //如果url地址中有中文参数,要注意应单独将中文部分进行编码操作后再与URL字符串拼接到一起,编码方式为:URLEncoder.encode("中文部分", "utf-8"); 
        //调用方法名
        String method="nciicCheck";
        Service service = new Service();
        //通过service创建call对象   
        Call call = (Call) service.createCall();          //call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); 设置soap12协议方式调用
        //设置服务地址
        call.setTargetEndpointAddress(new java.net.URL(url)); 
        //设置调用方法
        call.setOperationName(method);
        call.setUseSOAPAction(true);
        //添加方法的参数,有几个添加几个
        //inLicense是参数名,XSD_STRING是参数类型,IN代表传入
        call.addParameter("inLicense", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); 
        call.addParameter("inConditions", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
          //带命名空间的写法        
          //call.setOperationName(new QName("http://bussiness.***.com", "callPT"));				          //call.addParameter(new QName("http://bussiness.***.com","xmlData"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);          //call.addParameter(new QName("http://bussiness.***.com","methodName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
          //设置返回类型 
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);          //解决错误:服务器未能识别 HTTP 头 SOAPAction 的值           call.setUseSOAPAction(true);          call.setSOAPActionURI(targetNamespace + operationName);
        Object ret= null;
        try{
          //使用invoke调用方法,Object数据放传入的参数值
          ret = call.invoke(new Object[] {inLicense,inConditions}); 
        }catch(Exception e){
          e.printStackTrace();
        }
        //输出SOAP请求报文
        System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString());
        //输出SOAP返回报文
        System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString());
        //输出返回信息
        System.out.println("result==="+ret.toString()); 
    }catch(Exception e){
    e.printStackTrace();
    }
  }  
}

下面是输出结果信息:

--SOAP Request: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><nciicCheck soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><inLicense xsi:type="xsd:string">*****</inLicense><inConditions xsi:type="xsd:string">*****</inConditions></nciicCheck></soapenv:Body></soapenv:Envelope>
--SOAP Response: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:nciicCheckResponse xmlns:ns1="https://api.nciic.org.cn/NciicServices"><ns1:out>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;RESPONSE errorcode=&quot;-72&quot; code=&quot;0&quot; countrows=&quot;1&quot;&gt;&lt;ROWS&gt;&lt;ROW&gt;&lt;ErrorCode&gt;-72&lt;/ErrorCode&gt;&lt;ErrorMsg&gt;IP&#x5730;&#x5740;&#x53D7;&#x9650;&lt;/ErrorMsg&gt;&lt;/ROW&gt;&lt;/ROWS&gt;&lt;/RESPONSE&gt;</ns1:out></ns1:nciicCheckResponse></soap:Body></soap:Envelope>
result===<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE>

以上就是Java 使用Axis调用WebService的示例代码的详细内容,更多关于Java 使用Axis调用WebService的资料请关注脚本之家其它相关文章!

相关文章

  • Springboot详细讲解循环依赖

    Springboot详细讲解循环依赖

    最近在使用Springboot做项目的时候,遇到了一个循环依赖的问题,所以下面这篇文章主要给大家介绍了关于springboot循环依赖实现以及分析的相关资料,需要的朋友可以参考下
    2022-06-06
  • Java集合Map常见问题_动力节点Java学院整理

    Java集合Map常见问题_动力节点Java学院整理

    这篇文章主要为大家详细整理了Java集合Map常见问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 关于jar包与war包的区别及说明

    关于jar包与war包的区别及说明

    这篇文章主要介绍了关于jar包与war包的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • spring集成okhttp3的步骤详解

    spring集成okhttp3的步骤详解

    okhttp是一个封装URL,比HttpClient更友好易用的工具,下面这篇文章主要给大家介绍了关于spring集成okhttp3的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2018-04-04
  • SpringBoot集成elasticsearch使用图文详解

    SpringBoot集成elasticsearch使用图文详解

    Spring Boot集成Elasticsearch其实非常简单,这篇文章主要给大家介绍了关于SpringBoot集成elasticsearch使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Spring MVC 注解自动扫描失效原因分析

    Spring MVC 注解自动扫描失效原因分析

    这篇文章主要介绍了Spring MVC 注解自动扫描失效原因分析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Java实现多个sheet页数据导出功能

    Java实现多个sheet页数据导出功能

    这篇文章主要为大家详细介绍了Java实现多个sheet页数据导出功能的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Spring Boot项目实战之拦截器与过滤器

    Spring Boot项目实战之拦截器与过滤器

    这篇文章主要介绍了Spring Boot项目实战之拦截器与过滤器,文中给大家详细介绍了springboot 拦截器和过滤器的基本概念,过滤器的配置,需要的朋友可以参考下
    2018-01-01
  • java web中使用cookie记住用户的账号和密码

    java web中使用cookie记住用户的账号和密码

    这篇文章主要介绍了java web中使用cookie记住用户的账号和密码的相关资料,需要的朋友可以参考下
    2017-01-01
  • 深入理解Java中的类加载器原理

    深入理解Java中的类加载器原理

    这篇文章主要介绍了深入理解Java中的类加载器原理,类加载器负责加载所有的类,系统为所有被载入内存中的类生成一个java.lang.Class实例,需要的朋友可以参考下
    2024-01-01

最新评论