提到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,必须会相关推荐

  1. 学好web前端开发要注意哪些问题

    web前端学起来是比较困难的,当然想要学好web前端技术,那么有一些注意事项一定是要看的,下面小编就为大家详细的介绍一下学好web前端开发要注意哪些问题? ​ 学好web前端开发要注意哪些问题? 基础 ...

  2. 入门web前端是培训还是自学好?

    今天小编要跟大家分享的文章是关于入门web前端是培训还是自学好?web前端最近很火,尤其是随着互联网的迅速发展,人们对于前端样式的要求也越来越高,Web前端工作也变得越来越重要.很多人想要学习Web前 ...

  3. web自动化测试之百度经验-HTTP层面的Web Service自动化测试

    2019独角兽企业重金招聘Python工程师标准>>> 前言 我们之前在测试web service的时候尝试过多种方法:比如使用SoapUI:使用本地代理类编程等.前者不太方便做自动 ...

  4. web service方法进行全文检索_SpringMVC(Web应用)配置教程终章项目实战

    建立数据源本章是SpringMVC(Web应用)配置教程系列的最后一章了,感谢大家一路陪伴,一起成长.这篇文章较长,建议先收藏再看,这一章将链接之前所有的部分,之前没有看过的也可以在这篇中学习.项目实 ...

  5. Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数

    Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数 27_网络通信之通过GET和POST方式提 ...

  6. java web里实现 mvc_MVC模式在Java Web应用程序中的实现

    一.MVC简介: MVC架构是一个复杂的架构,其实现也显得非常复杂..Views可以看作一棵树,可以用Composite Pattern来实现.Views和Models之间的关系可以Observer  ...

  7. php yii2 service层,yii2 添加变量,Yii::$service,并像组件component那样可以添加单例配置...

    在yii2中,组件是可以通过配置的方式添加到Yii::$app中的. 现在我们想添加一个Yii静态变量,$service,下面都称呼这个变量为服务, 可以通过Yii::$service访问,然后添加服 ...

  8. java web 打印控件_web打印,web打印控件,dotnet web打印控件,java web打印控件,webprint...

    webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置. 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自 ...

  9. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)...

    1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是coo ...

最新文章

  1. 【Codeforces】808D Array Division(前后两部分和相等)
  2. labview 随笔记录
  3. bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
  4. JavaScript总结(一)
  5. Android表格布局(Table Layout)
  6. eclipse中多个工程编译到同一个目录下
  7. 有监督分类:集成分类(Bagging Boosting RandomForest)
  8. 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈
  9. 开源公司被云厂商“寄生”,咋整?
  10. windows server 2008 iis6.0 无法下载.exe
  11. Linux/CentOS下安装Apache/SVN/Subversion图文详解教程
  12. java 不取空值_Java:如何更优雅的处理空值?
  13. linux实用小功能
  14. python计算N维数据的笛卡尔积
  15. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(20):方阵函数
  16. 医疗器械信息系统分析
  17. 2021高考数学成绩查询,2021八省联考成绩相继公布!数学平均60多分,八个省市本科录取率曝光...
  18. 三星android怎么解锁屏幕旋转,三星S10如何设置打开应用自动旋转屏幕
  19. 一键还原的GHO文件夹打开方法(转载)
  20. mysql 锁级别说明 (行级锁)三

热门文章

  1. 在线文件(Word、Excel、PPT、PDF)预览
  2. Web XR 混合现实浏览器
  3. uniapp页面跳转出现白屏(APP与小程序)
  4. html中treegrid不显示根节点,treegrid如何让子节点默认不展开
  5. pycharm 没有 python template languages_开发效率神器说说Pycharm的骚操作
  6. python decimal类型转化_python的json模块,针对decimal类型直接dumps报错
  7. 有关计算机方面的知识竞赛,关于计算机知识竞赛试题
  8. 怎么打公式_我们总结了一条抖音爆款公式
  9. C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
  10. Bootstrap下拉菜单相关