文档详情

Apache CXF 学习笔记(第四章).doc

发布:2018-03-11约2.14千字共12页下载文档
文本预览下载声明
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
显示全部
相似文档