快速业务通道

Java Web服务: CXF简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Java Web服务: CXF简介

时间:2011-04-26 IBM Dennis Sosnoski

Apache CXF Web 服务堆栈是来自 Apache Software Foundation 的另一替代选择,Axis2 堆栈也来自同一组织。尽管它们来自同一组织,Axis 2 和 CXF 就如何配置和交付 Web 服务 采用完全不同的方法。在本文中,您将学习为 CXF Web 服务使用 JAXB 2.x 和 JAX-WS 2.x 的基础,还将比较 CXF 与其他 JAXB/JAX-WS 堆栈 — Axis2 和 Metro — 这两 个堆栈在之前的文章中讨论过。

CXF 基础比较

在用户界面方面,CXF 与 Axis2 和 Metro Web 服务堆栈有很多共 同之处。三个堆栈都允许要么从已有 Java™ 代码开始构建 Web 服务,要么从 WSDL Web 服务描述开始,生成使用或实现服务的 Java 代码。而且与其他堆栈一样,CXF 将服务 操作建模为方法调用,而将服务端口类型建模为接口。

与 Axis2 类似,但是不同于 Metro,CXF 允许选择不同的数据绑定技术。CXF 对 JAXB 2.x 的支持与 Metro 同等而高于 Axis2,因为它允许从 WSDL 生成代码时使用 JAXB 标准(而 Axis2 不允许)。CXF 还允许 使用其他数据绑定方法,不过对这些方法的支持不像在 Axis2 中那样成熟 — 特别是 ,只有在使用 JAXB 或 XMLBeans 数据绑定时才能使用 CXF 从 WSDL 生成代码。

CXF 使用的首选服务配置技术(或在 CXF 术语中称为前端) 是 JAX-WS 2.x 注释,通常附有 XML 配置文件。CXF 中对 JAX-WS 注释的支持与 Metro 同等,因而与 Axis2(在 Axis2 中 使用 JAX-WS 时存在一些限制,正如 “Axis2 中的 JAXB 和 JAX-WS” 所述)相 比,CXF 更适合使用 JAX-WS。与其他 JAX-WS 实现一样,CXF 需要服务 WSDL 在运行时可用 于客户机。

同其他堆栈一样,CXF 使用由可配置组件组成的请求和响应处理流。CXF 调用组件 intercepters,而非 handlers,不过除此以外的其他组件是等效组件。与 Metro 相同的是 ,CXF 完全支持 WS-Security 和其他扩展技术,将其作为基础下载的一部分。与 Metro 不 同的是,CXF JARs 是模块化的 — 即您可以根据正在使用的技术选择 JARs 使其成为应用程 序的一部分(CXF 安装目录中的 /lib/WHICH_JARS 文件会告诉您各种常见用例所需的特定 JARs)。该模块化的负面效应是最终会产生应用程序所需的一长列特定 JARs;从有利的一面 来说,它允许控制部署的大小。

另一个与 Metro 的相同之处是,CXF 通常需要为 Web 服务构建一个 WAR 文件,而非潜 在地部署多个服务到单个服务安装上(这正是 Axis2 所用的方法)。CXF 还以 Jetty 服务 器的形式提供一个适合生产使用的集成 HTTP 服务器。与 Axis2 和 Metro 中集成的简单服 务器支持相比,这可以提供一个更灵活、强大的替代选择。

示例应用程序

代码下载 部分提供了本系列之前文章中使用的简单的书库管理服务的一个版本,该版本 经过了修改,以演示 CXF 的使用。和之前的版本一样,WSDL 服务定义一共定义 4 个操作:

getBook 用于获取 International Standard Book Number (ISBN) 标识的特定图书的详 细信息。

getBooksByType 用于获取某种类型的所有图书的详细信息。

getTypes 用于发现现有的图书类型。

addBook 用于将新的图书添加到书库。

在 “Axis2 中的 JAXB 和 JAX-WS” 中,您看到了这个应用程序在 Axis2 中如何工作, 然后在 “Metro 简介” 中,您看到了它如何在 Metro 中工作。 这几篇文章中的大部分内 容也适用于使用 CXF 的情况。除了服务名称和端点地址不同外,WSDL 是相同的;生成的 JAXB 数据模型是相同的,甚至生成的服务类也是相同的,只是 Java 包和 JAX-WS 注释中使 用的服务名称不同。

Java Web服务: CXF简介(2)

时间:2011-04-26 IBM Dennis Sosnoski

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号