基于XFire的WebService讲解.doc_第1页
基于XFire的WebService讲解.doc_第2页
基于XFire的WebService讲解.doc_第3页
基于XFire的WebService讲解.doc_第4页
基于XFire的WebService讲解.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于基于 XFire 的的 WebService 2 目录目录 1 前言前言 3 1 1 概述概述 3 1 2 名词解释名词解释 3 2 技术讲解技术讲解 3 2 1 服务端服务端 3 2 1 1 搭建服务端 3 2 1 1 1 增加 jar 包 3 2 1 1 2 修改 web xml 4 2 1 1 3 增加 Xfire 的 services xml 4 2 1 1 4 访问测试 5 2 2 客户端客户端 6 2 2 1 生成调用服务类 6 2 2 2 调用服务 7 2 3 消息的截获消息的截获 7 2 4 使用工具软件调用使用工具软件调用 WebService 7 3 1 1 前言 1 1 1 1 概述概述 本文讲解的是使用 XFire 的技术搭建 WebService 以及调用 WebService 的服务 1 2 1 2 名词解释名词解释 WebService WebService 是一种 web 应用程序分支 它们是自包含 自描述 模块化的应用 可以发布 定位 通过 web 调用 WebService 可以执行从简单的请求到复杂商务处理的任何功 能 一旦部署以后 其他 WebService 应用程序可以发现并调用它部署的服务 WebService 完全 基于 XML 可扩展标记语言 XSD XMLSchema 等独立于平台 独立于软件供应商的标准 WSDL Web Services Description Language 的缩写 是一个用来描述 Web 服务和说明如何与 Web 服务通信的 XML 语言 WSDL 是 WebService 的描述语言 用于描述 WebService 的服务 接口绑定等 为用户提供详细的接口说明书 XFire XFire 是 codeHaus 组织提供的一个开源框架 它构建了 POJO 和 SOA 之间的桥梁 主要 特性就是支持将 POJO 通过非常简单的方式发布成 Web 服务 这种处理方式不仅充分发挥了 POJO 的作用 简化了 Java 应用转化为 Web 服务的步骤和过程 也直接降低了 SOA 的实现难度 为企业转向 SOA 架构提供了一种简单可行的方式 POJO POJO Plain Old Java Objects 简单的 Java 对象 其中有一些属性及其 getter setter 方法 的类 但不允许有业务方法 也不能携带有 connection 之类的方法 SOA 面向服务的体系结构 Service Oriented Architecture SOA 是一个组件模型 它将应用 程序的不同功能单元 称为服务 通过这些服务之间定义良好的接口和契约联系起来 接口是采 用中立的方式进行定义的 它应该独立于实现服务的硬件平台 操作系统和编程语言 这使得构 建在各种这样的系统中的服务可以一种统一和通用的方式进行交互 BO BO 为 Business Object 的缩写 Business Object 是业务对象层 表示应用程序领域内 事物 的所有实体类 2 2 技术讲解技术讲解 2 1 2 1 服务端服务端 2 1 1 搭建服务端搭建服务端 2 1 1 1 2 1 1 1 增加增加 jarjar 包包 所需 jar 包 xfire all 1 2 6 jar xfire aegis 1 2 6 jar xfire annotations 1 2 6 jar xfire core 1 2 6 jar xfire java5 1 2 6 jar xfire jaxws 1 2 6 jar xfire jsr181 api 1 0 M1 jar xfire spring 1 2 6 jar xml apis jar 4 XmlSchema 1 1 jar commons httpclient 3 1 jar jdom 1 0 jar spring 1 2 6 jar xbean spring 2 8 jar 将上述 jar 包放入工程的 lib 下 2 1 1 2 2 1 1 2 修改修改 web xmlweb xml 修改 web xml 在 web app 的标签内增加如下配置 XFireServlet org codehaus xfire transport http XFireConfigurableServlet 0 XFireServlet services 由于咱们的工程编码是 GBK 的 外部系统调用通常都是 UTF 8 的 所以在调用过程中所传输的 汉字有可能是乱码 所以还早在 web xml 下增加如下配置来解决乱码问题 encodingFilter org springframework web filter CharacterEncodingFilter encoding UTF 8 forceEncoding true encodingFilter services 2 1 1 3 2 1 1 3 增加增加 XFireXFire 的的 services xmlservices xml Web xml 配置好之后 在 ui 的 classes 目录下增加 META INF xfire services xml services xml 的文件内容如下 OperDataRecService 5 com chinalife contract service IClcmToTrusteeRun com chinalife contract service OperDataRecServiceImpl wrapped literal application 其中 com chinalife contract service IclcmToTrusteeRun 是发布服务的接口文件 com chinalife contract service OperDataRecServiceImpl 为实现接口的业务处理类 inHandlers 和 outHandlers 标签内描述的两个类 分别用于截获本系统使用 XFire 发布的服务被调 用的消息和使用 Xfire 调用其他 WebService 的消息 这一点会在本文的 2 3 中详细讲解 2 1 1 4 2 1 1 4 访问测试访问测试 经过以上步骤 WebService 就搭建好了 我们可以启动应用服务器 测试一下 打开浏览器 输入地址 http 127 0 0 1 7001 pension sec services 如果发布成功 可以看到如下页面 点击 wsdl 就可以看见 WebService 的 wsdl 了 6 2 2 2 2 客户端客户端 2 2 1 生成调用服务类生成调用服务类 WebService 的调用方式有直接调用和客户端调用 直接调用就是程序向 WebService 服务直 接发送 xml 文件 客户端调用是使用一些工具生成服务的调用类 接着这些类来调用 WebService 显而易见第二种方式更方便开发 生成服务调用类的方式有多种 比如 XFire Axis2 Axis 等等 由于 Xfire 和 Axis2 生成的 服务调用类和 BO 业务对象 只能在 JDK1 6 下使用 不符合咱们的实际情况 所以主要讲一下使 用 Axis 来生成的方法 首先下载 Axis1 4 的相关文件 解压到硬盘上 配置环境变量 AXIS LIB e axis 1 4 lib 将 activation jar mail jar xerces jar 放到 AXIS LIB 所指的目录下 然后在 CLASSPATH 里添加 axis 下的 11 个 jar CLASSPATH JAVA HOME lib 7 AXIS LIB axis jar AXIS LIB axis ant jar AXIS LIB commons discovery 0 2 jar AXIS LIB commons logging 1 0 4 jar AXIS LIB jaxrpc jar AXIS LIB log4j 1 2 8 jar AXIS LIB saaj jar AXIS LIB wsdl4j 1 5 1 jar AXIS LIB activation jar AXIS LIB mail jar AXIS LIB xerces jar 在 CMD 中运行 java org apache axis wsdl WSDL2Java s S true http 127 0 0 1 7001 pension sec services OperDataRecService wsdl 会自动生成相关的调用类和 BO 2 2 2 调用服务调用服务 示例代码 public static void main String args Service srModel new ObjectServiceFactory create IClcmToTrusteeRun class XFireProxyFactory factory new XFireProxyFactory XFireFactory newInstance getXFire 创建工厂实例 String helloURL http 10 3 176 84 7001 pension test oracle services OperDataRecService IClcmToTrusteeRun srvc null try srvc IClcmToTrusteeRun factory create srModel helloURL catch MalformedURLException e TODO Auto generated catch block e printStackTrace NewSignInfo tNewSignInfo new NewSignInfo String tReturn srvc newSignInfoToTrusteeRun tNewSignInfo 2 3 2 3 消息的截获消息的截获 由于 webservice 的消息的发送都是基于 xml 的 所以 XFire 提供了消息的截获功能 在 XFire 的 services xml 中 inHandlers 和 outHandlers 标签内描述的两个类 分别用于截获 本系统使用 XFire 发布的服务被调用的消息和使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论