webservice 参数为xml_CXF-web service之集大成者,想要学好web service,必须会
提到web service,就不得不提到大名鼎鼎的cxf了,Apache软件基金会的项目。但是这种项目一定是提供了各种功能,复杂性一定很高;各种兼容,所以会有很多用法。当然了,能成为apache基金会的项目,太小了是不是有点对不起apache的名号。
我们今天从最简单的开始,基于前一篇JDK开发时对Web Service的理解,先用CXF开发一个最简单的Web Service,以后在考虑其各种复杂性。
这server端的代码看起来就比JDK的实现要多好多。利用一个server的工厂JaxWsServerFactoryBean创建server,通过set方法设置address属性,还有ServiceClass属性,然后再利用server.start()方法启动服务。满满的设计感的味道。
备注:红线标识的才是我们真正提供服务的具体实现类。
然后通过浏览器看看我们生成的wsdl,一样的像天书那样难读。
我们再来看看客户端调用的代码。
通过一个代理JaxWsProxyFactoryBean来创建一个调用服务器端方法的代理类,通过代理类调用服务端暴露的方法。其实看起来也像是一个工厂方法。不知道后台到底是如何实现的呢?
代码比JDK的实现多很多,看起来也复杂很多,那么到底有什么好处呢?我们先来看一下可以帮我们减少工作量的方法。
CXF也提供了生成代码的方法。这个命令需要我们去下载CXF。
命令:wsdl2java -client http://127.0.0.1:13579/doer?wsdl
也是生成了一大堆的文件,如下
然后我们就可以用一个相对简单的方式来调用服务了。
红线代码是生成的可以直接调用服务的客户端代码。我们可以直接运行一下试试。
哎!~ 与原来JDK生成的客户端相比,我们不用写代码了。哈哈哈!!!
这里可以看到对我们服务的调用没有使用任何参数,或者说使用了空的参数。
我们只需要修改以下红线部分,给赋值一个我们想要的参数就可以了。
我想好处应该绝对不仅仅在生成代码上。我从百度知道查到,CXF全面支持JAX-WS,并提供各种绑定,各种格式,还可以根据实际需要通过代码生成wsdl,也可以通过wsdl生成代码。各种maven插件使得集成更容易,也支持spring。而且可插拔的架构,支持XML,也支持非XML。
总之,很牛逼的。别的不说,如果这些理论全都搞明白了,估计就已经是web service的大拿了。
附带一些常用的生成的命令:
-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.
webservice 参数为xml_CXF-web service之集大成者,想要学好web service,必须会相关推荐
- 学好web前端开发要注意哪些问题
web前端学起来是比较困难的,当然想要学好web前端技术,那么有一些注意事项一定是要看的,下面小编就为大家详细的介绍一下学好web前端开发要注意哪些问题? 学好web前端开发要注意哪些问题? 基础 ...
- 入门web前端是培训还是自学好?
今天小编要跟大家分享的文章是关于入门web前端是培训还是自学好?web前端最近很火,尤其是随着互联网的迅速发展,人们对于前端样式的要求也越来越高,Web前端工作也变得越来越重要.很多人想要学习Web前 ...
- web自动化测试之百度经验-HTTP层面的Web Service自动化测试
2019独角兽企业重金招聘Python工程师标准>>> 前言 我们之前在测试web service的时候尝试过多种方法:比如使用SoapUI:使用本地代理类编程等.前者不太方便做自动 ...
- web service方法进行全文检索_SpringMVC(Web应用)配置教程终章项目实战
建立数据源本章是SpringMVC(Web应用)配置教程系列的最后一章了,感谢大家一路陪伴,一起成长.这篇文章较长,建议先收藏再看,这一章将链接之前所有的部分,之前没有看过的也可以在这篇中学习.项目实 ...
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数 27_网络通信之通过GET和POST方式提 ...
- java web里实现 mvc_MVC模式在Java Web应用程序中的实现
一.MVC简介: MVC架构是一个复杂的架构,其实现也显得非常复杂..Views可以看作一棵树,可以用Composite Pattern来实现.Views和Models之间的关系可以Observer ...
- php yii2 service层,yii2 添加变量,Yii::$service,并像组件component那样可以添加单例配置...
在yii2中,组件是可以通过配置的方式添加到Yii::$app中的. 现在我们想添加一个Yii静态变量,$service,下面都称呼这个变量为服务, 可以通过Yii::$service访问,然后添加服 ...
- java web 打印控件_web打印,web打印控件,dotnet web打印控件,java web打印控件,webprint...
webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置. 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自 ...
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)...
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是coo ...
最新文章
- 【Codeforces】808D Array Division(前后两部分和相等)
- labview 随笔记录
- bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
- JavaScript总结(一)
- Android表格布局(Table Layout)
- eclipse中多个工程编译到同一个目录下
- 有监督分类:集成分类(Bagging Boosting RandomForest)
- 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈
- 开源公司被云厂商“寄生”,咋整?
- windows server 2008 iis6.0 无法下载.exe
- Linux/CentOS下安装Apache/SVN/Subversion图文详解教程
- java 不取空值_Java:如何更优雅的处理空值?
- linux实用小功能
- python计算N维数据的笛卡尔积
- 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(20):方阵函数
- 医疗器械信息系统分析
- 2021高考数学成绩查询,2021八省联考成绩相继公布!数学平均60多分,八个省市本科录取率曝光...
- 三星android怎么解锁屏幕旋转,三星S10如何设置打开应用自动旋转屏幕
- 一键还原的GHO文件夹打开方法(转载)
- mysql 锁级别说明 (行级锁)三
热门文章
- 在线文件(Word、Excel、PPT、PDF)预览
- Web XR 混合现实浏览器
- uniapp页面跳转出现白屏(APP与小程序)
- html中treegrid不显示根节点,treegrid如何让子节点默认不展开
- pycharm 没有 python template languages_开发效率神器说说Pycharm的骚操作
- python decimal类型转化_python的json模块,针对decimal类型直接dumps报错
- 有关计算机方面的知识竞赛,关于计算机知识竞赛试题
- 怎么打公式_我们总结了一条抖音爆款公式
- C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
- Bootstrap下拉菜单相关