Java如何基于wsimport调用wcf接口


Posted in Python onJune 17, 2020

wcf接口是由.net提供的webservice接口,一般是使用wsdl文件的样式发布,在wsdl文件中,包含该webservice暴露在外面可供使用的接口。

了解到的调用wfc接口方法有三种:

  • AXIS调用远程webservice
  • SOAP调用远程webservice
  • wsimport生成java代码,调用接口

在尝试方法1、2多次失败后,果断放弃,选择了简单易上手的方法3。通过jdk6.0以上版本自带的wsimport工具,即可根据wsdl文件生成相应的类文件。将这些生成的文件放在相应项目,就可以像调用本地的类一样调用webservice提供给的方法了。

具体步骤:

1、通过wsimport命令生成java代码,命令如下

wsimport 'http://XXX/BaseInfoService.svc?wsdl' -s /XXX/proxy/source -d /XXX/proxy/class -p proxy

-d:指定.class文件的输出目录

-s:指定.java文件的输出目录

-p:定义生成类的包名,不定义的话有默认包名

2、将生成文件放到项目中,创建调用类

public class TestWsimport{
    public Map<String, String> push(ParamDTO params) {
     BaseInfoService client = new BaseInfoService();
     // 将接口参数封装在ParamDTO中,代码更简洁
     String requestInputStream = JSON.toJSONString(params);
     String resultStr = client.getBasicHttpBindingIBaseInfoService()
               //需要调用的方法
               .sendParams(requestInputStream);

     JSONObject resultObj = JSON.parseObject(resultStr);
     Integer success = resultObj.getInteger("Success");
     if (success == 0) {
       Map<String, String> errorMap = Maps.newConcurrentMap();
       String errorDesc = resultObj.getString("Body");
       errorMap.put(clueInfo.getRequestObjectList().get(0).getClueCode(), errorDesc);
       return errorMap;
     }
     return null;
   }
 }

示例接口较简单,只需要发送数据。不同的webservice接口生成的代码会有出入,调用接口的代码需要根据实际情况进行调整。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python flask 多对多表查询功能
Jun 25 Python
Python深度优先算法生成迷宫
Jan 22 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
python安装第三方库如xlrd的方法
Oct 31 Python
python中time包实例详解
Feb 02 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 Python
python实现简单区块链结构
Apr 25 Python
使用keras内置的模型进行图片预测实例
Jun 17 #Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 #Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 #Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 #Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 #Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 #Python
Python多线程threading创建及使用方法解析
Jun 17 #Python
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
jquery 经典动画菜单效果代码
2010/01/26 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
js 函数性能比较方法
2020/08/24 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
Python序列操作之进阶篇
2016/12/08 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
工地宣传标语
2014/06/18 职场文书
小学教师师德整改措施
2014/09/29 职场文书
个人自我剖析材料
2014/09/30 职场文书
MySQL事务的隔离级别详情
2022/07/15 MySQL