引言
Web Services 是一种面向服务的技术,通过标准的 Web 协议提供服务,目的是保证不同平台 的应用服务可以互操作。依据 web services 规范实施的应用之间,无论它们所使用的语言、 平台或内部协 议是什么,都可以相互交换数据,这就是 web services 的好处。本文选择 IBM WebSphere Application Server 作为 web services 的运行环境,并选择 IBM Rational Application Developer(以下简称 RAD) for WebSphere 就是作为本文的开发平台。RAD 针对 IBM WebSphere Application Server 的测试环境进行了 优化,减少了开发人员因配置环境而消耗的时间。本文中展示的所有示例都是在 RAD for WebSphere 平台上 开发、测试的。
Web Services 与 JAX-WS
Web Services 发展至今已有两种形式:REST 和 SOAP。REST Web Services 基于 HTTP 协议,SOAP Web Services 支持多种传输协议:HTTP、SMTP、MIME 等 等。本文主要介绍 SOAP web services。对于 JAVA,目前有两种 SOAP Web Services 规范:JAX-WS 和 SAAJ 。
SOAP Web Services 通常要求服务器端提供一個机器可读的描述(通常基于 WSDL),以便客户端辨 识服务器端提供的 Web 服务。
JAX-WS (Java API for XML Web Services) 是一组专门用于实现 XML Web Services 的 Java API。JDK 1.6 自带 JAX-WS 版本为 2.1。不过,JAX-WS 只提供 web services 的基 础功能,所以如果你希望实现 web services 的复杂功能,比如 WS-Security,WS-Policy,WS-RM 等,那就 需要切换到 Apache CXF 、Metro 或者 Axis。
本文的目标对象是初次接触 web services 或者 JAX- WS 的开发人员。所以本文将分享以下内容:
Web Services 服务器端的开发
Web Services 客户端的开发
基于 https 协议的 web services 通信
利用 @MTOM 优化网络大数据传输
JAX-WS web services 开发
RAD 是一个基于 Eclipse 的全功能集成开发环境(IDE),所以熟悉 Eclipse 的开发人员可以很快的上手使用 RAD 平台。
服务器端开发:
首先,在 RAD 平台上, 创建一个最简单的 web service,这个 service 只向客户端返回一个字符串 – “Hello World”。服务器端 的工作流程如下:完成 web services 编写,发布 web services 生成服务描述文件(WSDL),以供客户端获 取。接下来,等待客户端发来的 SOAP 请求消息,解析其中的方法调用和参数格式。根据 WSDL 和 WSML 的描 述,调用相应的对象来完成指定功能,并把返回值放入 SOAP 回应消息返回给用户。
首先在 RAD 中新 建一个 Web Project – WebProjectDemo,
图 1. 创建 Web Project