Java调用WebService之Axis实现
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><?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></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调用WebService之Axis实现的更多相关文章
- Java调用WebService方法总结(4)--Axis调用WebService
Axis是比较常用的WebService框架,该项目在2006实现了最终版,后面就没有更新了.文中demo所使用到的软件版本:Java 1.8.0_191.Axis 1.4. 1.准备 参考Java调 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- 原生java调用webservice的方法,不用生成客户端代码
原生java调用webservice的方法,不用生成客户端代码 2015年10月29日 16:46:59 阅读数:1455 <span style="font-family: Aria ...
- Java调用Webservice(asmx)的几个例子
Java调用Webservice(asmx)的几个例子 2009-06-28 17:07 写了几个调用例子: 1. import org.apache.axis.client.*;import org ...
- Java调用WebService方法总结(5)--Axis2调用WebService
Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...
- Java调用WebService方法总结(1)--准备工作
WebService是一种跨编程语言.跨操作系统平台的远程调用技术,已存在很多年了,很多接口也都是通过WebService方式来发布的:本系列文章主要介绍Java调用WebService的各种方法,使 ...
- java 调用webservice的各种方法总结
java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...
- Axis2 webservice 之使用java调用webservice
在上一篇中写了一个简单了webservice,实现了一个sayHello功能.那么webservice写好之后我们如何使用Java程序来调用webservice呢? 一.java调用的webservi ...
- java调用webservice,restful
java调用webservice public String redoEsb(String loguid, String user, String comments, String newMsg, S ...
随机推荐
- R语言爬虫:Rvest包函数介绍(表格)
Rvest 包中常用函数一览: 函数 作用 read_html() 读取 html 页面 html_nodes() 提取所有符合条件的节点 html_node() 返回一个变量长度相等的list,相当 ...
- 从PRISM开始学WPF(八)导航Navigation-更新至Prism7.1
原文:从PRISM开始学WPF(八)导航Navigation-更新至Prism7.1 0x6Navigation [7.1updated] Navigation 在wpf中并没有变化 Basic Na ...
- 【转】odoo学习之:Environment
Environment类提供了对ORM对象的封装,同时提供了对注册类的访问,记录集的缓存,以及管理重计算的数据结构. 对于继承了Model的类来说可以直接通过self.env对Environment进 ...
- Android 模拟器 下载、编译及调试
Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...
- 分享一个 UiPath Studio 相关的公众号
RPA 和 UiPath 方面的资料比较少,因此我们自己创建了一个公众号,专门用于传播 UiPath 相关的知识. 会定期发布 UiPath 学习相关的信息.是目前难得的 UiPath 中文资源. 公 ...
- 使用unittest里面的discover()方法组织测试用例
import osimport unittest directory = os.getcwd()# 测试用例的目录organize = unittest.defaultTestLoader.disco ...
- Python搭配unittest
unittest是Python的单元测试框架, 类似于Java里面的TestNG. Unittest.py: import unittest from selenium import webdrive ...
- Microbit MicroPython 介绍
Python 是全世界最受欢迎的程序语言之一(world’s most popular ) .如果不特别说明,你可能每天在使用Python 写成的软件而不知道.像许多著名的公司跟组织如 Google, ...
- TW实习日记:第17天
今天又改了一堆bug,比如界面的显示bug,Html字符串的处理.优化了一些交互界面,处理了一个模块数据传输的问题.我发现这些bug真的有一半是粗心导致的,真的真的是,写代码一定要细心细心再细心,不然 ...
- 211. String Permutation【LintCode by java】
Description Given two strings, write a method to decide if one is a permutation of the other. Exampl ...