Apache CXF 学习笔记(第四章).doc
文本预览下载声明
Apache CXF学习笔记
作者:吕鹏
整理日期:2013年7月2日
参考书籍:《基于Apache CXF 构建SOA应用》
第四章 简单的Apache CXF例子
本章内容:
4.1简单的JAX-WS服务程序
4.2用Spring来创建Web Services 服务程序
4.3 Servlet容器中的Web services实现
4.1一个简单的JAX-WS服务程序
过程实现如下图:
4.1.1创建一个JAX-WS服务项目
打开IDE创建一个新的java项目,在eclipse中选择菜单命令-file-java project 创建名为hello world_jax_ws的项目;设置项目encoding为utf-8;添加依赖库到项目中:我使用的jar包版本是apache-cxf-2.7.5/lib下的所有jar.
(注意:我使用的是最新版本[2.7.5]的cxf 在调试过程中发现JDK必须使用1.7 当然可能与我本机环境有关系 文档发布时未仔细调试此问题 建议使用eclipse开发是统一JDK版本能避免此类问题)
4.1.2 编写一个对外发布的Services代码
编写一个SEI服务接口,定义方法sayHi,代码如下:
4.1.3 对外发布Web services
可以通过下面的方式来发布Web service服务,代码如下:
启动服务后,在浏览器中请求地址:16:9000/helloWorld?wsdl
(注意:用于测试时可以换成localhost)
浏览器会现实如下信息,表示服务发布成功!
4.1.4 客户端调用Web Services
调用客户端程序,调用services的 sayHi方法,将字符串“吕鹏”,观察服务端和客户端的console输出:
4.1.5 IDE自动生成客户端代码
目前咱们的客户端是手写的,其实我们在浏览器中请求webservice时,我们只要知道了这个请求地址:
我们就可以通过IDE带来的强大功能自动的生成客户端,流程如下:
新建一个普通的JAVA 工程,在src目录中点击右键新建,新建一个web service client
点击下一步:
选择一个包,用于存放生成的客户端类:
然后一直下一步,最后finish,最后生成的包结构如下:
手动的创建一个客户端类,调用HelloWorld_Service,具体代码如下:
4.2利用Spring创建Web Service服务程序
采用spring配置,再编写一个比较简单的JAX-WS服务的示例程序,与上一个例子相同,这个例子采用JAX-WS内置的服务器进行发布,调用方式为前端应用模式,要创建这个应用,需要经过下面五个步骤:
·创建一个JAX-WS项目
·编写一个对外发布的services代码
·定义服务器发布程序和配置文件
·对外发布web services
·客户端调用web services
4.2.1创建一个JAX-WS服务项目
和上一次项目一样,拷贝上一份代码,修改一下名字即可,有的时候单独拷贝工程重命名是不管用的,为保证项目名称确实已经修改,可检查下项目根目录下的.project文件的name值是否已经更改。
4.2.2 编写一个对外发布的Services代码
4.2.3 对外发布Web services
4.2.4 客户端调用Web Services 两种方式
下面来看两个配置文件各自的内容:
测试结果略。
4.3 Servlet容器中的Web Service实现
再编写一个在servlet容器的例子程序,要创建这个应用,需要下面4个步骤:
·创建一个JAX-WS服务的web项目
·编写一个对外发布的Services代码
·通过Servlet容器来发布这个web services
·客户端调用Web services.
4.3.1创建一个JAX-WS服务项目
在IDE中创建一个web project 创建名称为hello_world_servlet的项目。本例子是基于spring来实现的,采用tomcat服务器来进行发布,调用法师是前端应用模式。
4.3.2 编写一个对外发布的Services代码
此处代码和上面两个例子类似。可以直接拷贝,稍后做修改。此处不再贴代码。
4.3.3 通过servlet容器来发布web services
由于要把服务装载到servlet容器,servlet采用tomcat,所以要使用下面的方式来发布web services服务,web.xml文件配置如下:
而WEB-INF下的server-bean.xml 内容如下:
把内容发布到tomcat有两种方式,一种是通过eclipse工具直接部署在tomcat上,另外一种是通过ant部署在tomcat上,部署完成后,在IE或者其他浏览器中输入16:8080/hell
显示全部