cxf 实名认证---全国公民身份信息系统
最近做了一个实名认证功能,需要调用公安部门接口进行认证,用到webService。期间查阅了很多资料。小结如下。
1、ws 客户端代码生成:
客户端代码是根据所给的url?wsdl文件生成的、该文件通过网络url或者本地都可以。生成方式有很多种、现稍做总结:
(1) 使用 jdk 自带的 wsimport 生成 : 将dos窗口切换至src目录下执行命令 wsimport -keep 文件地址(本地/url)。jdk1.6 及以上。
(2)eclipse web Service Client 工具。 new 一个 web Service Client 需要填入 wsdl 文件地址和代码生成地址(src下面)
(3)使用 apache-cxf-3.2.1 (其他版本没试过): 下载安装 apache-cxf-3.2.1(http://cxf.apache.or/download.html)。配置环境变量 :在环境变量中配置CXF_HOME , 在PATH 中加入 %CXF_HOME%\bin。
以下内容为转载:
wsdl2java -p com -d src -all wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
实例1.:wsdl2java -p com -client -d d:/src http://10.10.106.111:8090/webservice_cxf_spring/services/UserService?wsdl
实例2.:wsdl2java -p com -all -d E:\jiekou E:\jiekou\NciicServices.wsdl
生成java代码后可以直接复制到客户端中再客户端中使用
2 、测试代码如下:
package com.client;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxy;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
import org.codehaus.xfire.transport.http.EasySSLProtocolSocketFactory;
import org.codehaus.xfire.util.dom.DOMOutHandler;
import com.NciicServicesPortType;
public class NciicClient {
public static final String SERVICE_URL = "https://ws.nciic.org.cn/nciic_ws/services/";
public NciicClient() {
}
/**
* XFire调用方法
*
* @param serviceName
* @param condition
* @return
* @throws MalformedURLException
*/
public String executeClient(String serviceName, String condition, String iNlicense) throws MalformedURLException {
ProtocolSocketFactory easy = new EasySSLProtocolSocketFactory();
Protocol protocol = new Protocol("https", easy, 443);
Protocol.registerProtocol("https", protocol);
Service serviceModel = new ObjectServiceFactory().create(NciicServicesPortType.class, "NciicServices", null,
null);
NciicServicesPortType service = (NciicServicesPortType) new XFireProxyFactory().create(serviceModel,
SERVICE_URL + serviceName);
Client client = ((XFireProxy) Proxy.getInvocationHandler(service)).getClient();
client.addOutHandler(new DOMOutHandler());
// 压缩传输
client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED, Boolean.TRUE);
// 忽略超时
client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "1");
client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");
BufferedReader in;
// 调用核查方法
String result = service.nciicCheck(iNlicense, condition);
System.out.println("结果:" + result);
return result;
}
public static String fileRead() throws Exception {
File file = new File("授权文件地址");
FileReader reader = new FileReader(file);
BufferedReader bReader = new BufferedReader(reader);
StringBuilder sb = new StringBuilder();
String s = "";
while ((s = bReader.readLine()) != null) {
sb.append(s + "\n");
}
bReader.close();
String str = sb.toString();
return str;
}
public static void main(String[] args) throws MalformedURLException {
try {
String license = fileRead();
String con = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
+ "<ROWS><INFO><SBM>$$SBM$$</SBM></INFO><ROW><GMSFHM> 公民身份号码\n"
+ "</GMSFHM><XM> 姓名</XM></ROW><ROW FSD=\" $$FSD$$ \" YWLX=\" $$YWLX$$ \" >\n"
+ "<GMSFHM>$$idno$$</GMSFHM><XM>$$username$$</XM></ROW></ROWS>";
con = con.replace("$$idno$$", "******").replace("$$username$$", "******");
new NciicClient().executeClient("NciicServices", con, license);
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:相关jar包本站可以下载。
cxf 实名认证---全国公民身份信息系统相关推荐
- php身份证注册判断重名,同名同姓测试,全国公民身份信息系统库查重名
同名同姓测试,全国公民身份信息系统库查重名 时间:2020-05-21 13:30:01 大部分爸爸妈妈在给宝宝取姓名的时候,会好奇在全国范围内有多少人名字相同,希望孩子的名字不会跟太多人重合.或者有 ...
- 中国人民银行和公安部的联网核查公民身份信息系统存在bug
要不是今天亲身经历,我还真不敢相信.照理银行的系统应该是逻辑上非常严密的才对,但是搞笑的事还是能发生.跟12306当初老是各种问题类似. 去银行办业务,我的身份证刷了一下,从银行的身份认证系统里面读出 ...
- 原来中国人民银行和公安部的联网核查公民身份信息系统存在bug的原因可能是身份证信息被基层派出所复制
今天看到这样一则新闻: 男子身份证被"错制" 天降三千万债务成老赖维权难 才明白, 中国人民银行和公安部的"联网核查公民身份信息系统"存在bug 的原因, 可能 ...
- 第一个被赋予公明身份的机器人_世界首位获公民身份机器人索菲亚,称要结婚生子毁灭人类...
如今人们的科学技术发展的越来越快,科学家们在机器人的领域上也有了很大的创新,就像机器人索菲亚一样,竟然成为了世界上第一位获得公民身份的机器人,不过这名机器人口气也是很大的,竟然公然宣称要毁灭人类,还想 ...
- 公民身份号码校验码算法(C#版)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 中国志愿者服务器注册,全国志愿服务信息系统操作指南二(志愿者注册)
原标题:全国志愿服务信息系统操作指南二(志愿者注册) 1 注册登录 在电脑上打开中国志愿服务网站. 网址: 点击网页顶部"志愿者注册"图标,打开志愿者注册页面. 选择"云 ...
- 一周AI看点 | 沙特授予机器人公民身份,美国信息产业理事会发布《人工智能政策原则》
本期一周AI看点包括行业热点.投融资.业界观点.技术前沿以及应用等方面. 行业热点 解读搜狗招股书:AI成为未来 搜狐仍掌握控制权 目前搜狗确定的六大未来战略则是:拓展搜索市场.开发下一代人机接口.解 ...
- 都是套路!要毁灭人类、喷马斯克、还获得公民身份的机器人Sophia,真相确是...
作者 | 逍遥小妖 本文转载自PingWest品玩(ID:wepingwest) 头图里这位机器人姑娘,想必各位都比较熟悉吧. 她的名字叫索菲亚,在过去一年里经常出现在微博和微信朋友圈刷屏. 最近的一 ...
- 全国志愿信息服务器,全国志愿者服务信息系统官网登录,2020全国志愿者服务信息系统官网登录注册入口预约 v1.0-手游汇...
全国志愿者服务信息系统官网登录是一款用户们都可以使用的软件,最新的志愿者的活动会在平台上不断的更新都是附近的一些内容,这个平台本身来说是非常安全可靠的.您如果有意向的话在手机上就能够轻松的报名,可以充 ...
最新文章
- 从头理解self-attention机制
- 列举一些常见的系统系能瓶颈 Common Bottlenecks
- Community Server系列之二:页面之间的关系1[介绍]
- mockjs针对value生成随机数值(随机字符串,数值,日期,url,图片地址,email,ip等)
- scrapy 去重策略修改
- winpcap基本原理及常见应用_锁相放大器的基本原理(Part 1)
- 使用J-link+J-Flash给STM32芯片烧写序列号
- juniper使用U盘安装junos10k2系统
- iPXE部署Ubuntu无盘系统
- Python爬虫教程入门(附源码)
- 数据恢复——在Windows 10中恢复永久删除的文件的5种方法
- python实现爬虫_Python开发简单爬虫
- java农夫过河_农夫过河问题(java版)
- python 期货现货差价监测_现货价格和期货价格的关系怎么看?
- 【VUE实战问题记录】Vue 父组件调用子组件的使用方法
- 蓝牙各种版本的区别(推荐)
- 访问tomcat出现java.lang.IllegalStateException No output folder错误解决方法
- 带你了解什么是论文查重
- Windows 10 Excel批量导入打印条形码标签免费工具介绍
- 达飞云贷:玩转节日,给你不一样的惊喜!
热门文章
- 【蓝桥杯】 历届试题 合根植物(并查集)
- PHP“垂死挣扎”的十年!
- Vue slot-scope的理解(适合初学者)
- 网易发布第四季度财报 营收28.9亿美元
- UGUI中Text实现一个简单的打字机的效果
- MindSpore:【AIR模型导出】导出时提示源码中select_op参数类型转换失败
- TNF抑制剂在10例新近起病的难治性反应性关节炎患者中的安全性与疗效
- 【算法】leetcode 974. 和可被 K 整除的子数组(前缀和思想)
- 关于企业微信服务商入门考试v2.0题库
- 如何用数学知识提升情商?数学学霸们的6大思维习惯