《和 Java SE 6 创建独立 Web Services 应用程序.pdf》由会员分享,可在线阅读,更多相关《和 Java SE 6 创建独立 Web Services 应用程序.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 没有 百度文库财富值 请到文库帮手网 w w w.365x u e y u a n.c o m 免费帮下载 百度文库积分 资料 本文由c a l f i n u x 贡献 d o c 1。第 1 部分:We b Se r v i c e s 服务端应用程序 使用 Ec l i p s e 集成开发环境(In t e g r a t e d De v e l o p m e n t En v i r o n m e n t,IDE)和 Ja v a Pl a t f o r m,St a n d a r d Ed i t i o n (Ja v a SE)6 创建可以从控制台运行的独立 Web
2、 Se r v i c e s 应用程序。本教程是该 系列的第 1 部分,将首先让您熟悉 Ec l i p s e IDE。配置环境;创建项目、包和类;然后从命令行运行应 用程序。开始之前 关于本系列 此系列教程演示如何使用 Ja v a SE 6 创建可轻松地从命令行而不是从 We b 应用程序服务器容器中运行 的独立 We b Se r v i c e s 服务端和客户端应用程序。使用简单的 He l l o Wo r l d 示例,您将利用 Ec l i p s e IDE、Ja v a SE 6 和 Ap a c h e An t 轻松创建完全可以正常工作的 We b Se r v i
3、 c e s 服务端和客户端应用 程序。您还将使用 TCP/IP Mo n i t o r 检查服务器与客户端之间的通信流量,并使用 Ec l i p s e We b Se r v i c e s Ex p l or e r 工具测试 We b Se r v i c e s 。关于本教程 本教程是该系列的第 1 部分,将向您介绍如何使用 Ec l i p s e IDE、Ja v a SE 6 和 An t 发布 We b Se r v i c e s 应用程序。本教程为第 2 部分奠定了基础,第 2 部分将描述 We b Se r v i c e s 客户端应用程 序的创建。目标 完成本教
4、程后,您应该知道:什么是 We b Se r v i c e s ,以及它使用的与从 Ec l i p s e 中用于查看已发布的 We b Se r v i c e s 描 述语言(We b Se r v i c e s De s c r i p t i o n La n g u a g e,WSDL)文件的浏览器相关的标准是什么。如何创建 We b Se r v i c e s 的服务器端,包括如何安装和配置 Ecl i p s e IDE 和 Ja v a De v e l o p m e n t Ki t (JDK),以便它们协同工作以生成使用 Ja v a SE 6 来编译的代码。如
5、何在 Ec l i p s e IDE 中使用基于 An t Ja v a 的构建工具来运行特殊 Ja v a 命令以生成代码的某 些部分。先决条件 先决条件 本教程包括为具备一些 Ja v a 语言和 An t 构建的实际应用知识的初级和中级 Ja v a 程序员编写的简单 步骤。初学者到更高级的 Ja v a 开发人员将获得一些知识:学会如何构建、部署和运行独立 We b Se r v i c e s 服务端和分布式客户端,以提供防火墙友好的远程通信和应用程序处理。系统要求 要按照示例进行操作,您需要下载:Ec l i p s e IDE f o r Ja v a De v e l o p
6、 e r s Ja v a SE 6 您不必下载 An t,因为其功能与 Ec l i p s e 打包在一起。本教程使用 Ga n y m e de Pa c k a g e f o r t h e Ec l i p s e IDE f o r Ja v a EE De v e l o p e r s。设置开发环境 安装 Ja v a SE 6 1.下载并安装最新的 Ja v a SE 6 JDK。Ja v a SE 6 具有许多新功能,包括 We b Se r v i c e s API。2.双击可执行文件并按照安装说明进行操作。建议您执行典型安装并保留所有缺省设置,例如位置。3.当系统询
7、问时,请选择您是否希望将该 Jav a 运行时环境安装为系统 JVM,以及是否希望将任 何浏览器与该 Ja v a 插件相关联。4.单击 Fi n i s h 开始安装。5.关闭任何打开的浏览器窗口。6.完成安装后,您应该看到一条确认安装成功的感谢消息。单击 OK 关闭该消息。注意:将(Ja va Vi r t u a l Ma c h i n e,JVM)注意:Ja v a Ru n t i m e En v i r o n m e n t (JRE)安装为系统p a g e 1 Ja v a 虚拟机 意味着它将取代在 Mi c r o s o f t Wi n d o w s 目录中找到的
8、任何 JVM,或在未从该目录找到 JVM 的情 况下复制新的副本。将任何浏览器与 Ja v a 插件关联意味着将这个新的 Ja v a 版本用于 Ap p l e t。安装 Ec l i p s e Ec l i p s e 是一个开放源代码、可扩展的开发平台,可以在几乎所有的操作系统上进行安装。(了解有关 Ec l i p s e 的更多信息。)安装 Ec l i p s e 是相当简单的,因为不存在安装过程:下载 Ec l i p s e IDE f o r Ja v a EE De v e l o p e r s。将文件提取到计算机上的所需位置。然后您应该看到一个名为 e c l i p
9、 s e 的文件夹。为方便起见,最好在桌面上创建 e c l i p s e.e x e 文件的快捷方式。配置 Ec l i p s e 第一次运行 Ec l i p s e 时,将会显示欢迎页面,如图 1 所示。如果不想阅读概述和其他产品信息,只需关 闭该页面,以后可以通过选择 He l p We l c o m e 返回到该页面。图 1.欢迎屏幕 配置 Ec l i p s e 以使用您先前安装的 Ja v a SE 6 JDK;您需要将项目与此版本的 Ja v a 相关联:1.选择 Wi n d o w Pr e f e r e n c e s Ja v a In s t a l l e
10、 d JREs,然后单击 Ad d 按钮。2.输入名称,例如 Ja v a SE 6,以便于识别其版本。3.单击 Br o ws e 按钮,并定位到安装 JRE 60 的目录。4.单击 OK(请参见图 2)。图 2.添加新的 JRE 新的 JRE 现在应该出现在已安装的 JRE 列表中,如图 3 所示。5.选中 Ja va SE 6 复选框,然后单击 OK。图 3.选择新的 JRE 6.若要设置对所安装的 Ja v a 版本的遵从性,请选择 Wi n d o w Pr e f e r e n c e s Ja v a Co m p i l e r。7.从 Co m p i l e r c o
11、m p l i a n c e l e v e l 下拉列表中选择 1.6,如图 4 所示。图 4.设置遵从性 创建项目 下一步,您将创建一个项目来构造 We b Se r v i c e s 服务端。项目包含源代码和其他相关文件,并允许您 使用项目作为源文件的容器,或在项目中设置文件夹以对文件进行组织。1.选择 Fi l e Ne w Pr o j e c t。2.展开 Ja v a 文件夹并单击 Ja v a Pr o j e c t(请参见图 5)。图 5.在 Ec l i p s e 中创建项目 3.单击 Ne x t。4.在看到提示时输入项目名称,例如 w s Se r v e r
12、Ex a m p l e,如图 6 所示。图 6.在 Ec l i p s e 中输入项目详细信息 5.如果先前已缺省选择了 Us e d e f a u l t JRE 单选按钮,则选择此单选按钮;否则请选择 Us e a p r o j e c t s p e c i f i c JRE 单选按钮,并确保该 JRE 为 Ja v a SE 6。6.单击 Fi n i s h 将项目与您先前安装的 Ja v a JDK 相关联。7.如果提示您切换 Jav a 透视图,请单击 Ye s。创建服务器 首先需要创建一个 Ja v a 包来容纳您的 Ja v a 类:1.选择 Fi l e Ne w
13、 Pa ck a g e。2.当 Ne w Ja v a Pa c k a g e 窗口打开时,输入包名称,例如 c o m.m y f i r s t.w s Se r v e r,如图 7 所 示。图 7.创建包 下一步,您需要为服务器代码创建一个类:3.右键单击您刚才创建的包名称,然后选择 Ne w Cl a s s。按如图 8 所示对其进行配置。图 8.创建类 4.将该类创建为没有 m a i n 方法存根的 p u b l i c 类。现在您已经为该包提供了一个类,下面可以开始编写服务器的代码了,如清单 1 所示。清单 1.服务器代码 p a c k a g e c o m.m y
14、f i r s t.w s Se r v e r;i m p o r t Ja v a x.j w s.We b Se r v i c e;We b Se r v i c e p u b l i c c l a s s Sa y He l l o p a g e 2 p r i v a t e s t a t i c f i n a l St r i n g SALUTATION=He l l o;p u b l i c St r i n g g e t Gr e e t i n g(St r i n g n a m e )r e t u r n SALUTATION+n a m e;请注意清
15、单 1 中粗体显示的代码。这称为 An n o t a t i o n 或元数据,由 Ja v a SE 5 中引入的 We b Se r v i c e s 元数据规范(We b Se r v i c e s Me t a d a t a Sp e c i f i c a t i o n)所使用。开发人员在对类和方法应用 An n o t a t i o n 之前定义类和方法,以向运行时引擎指明如何将类及其方法作为 We b Se r v i c e s 和 We b Se r v i c e s 操作来启用。Ja v a SE 6 附带了这样一个引擎。We b Se r v i c e A
16、n n o t a t i o n 将 Sa y He l l o 类标记为实现某个 We b Se r v i c e s ,从而产生可部署的 We b Se r v i c e s 。这个特定的 An n o t a t i o n 是一个 WSDL 映射 An n o t a t i o n,并将 Ja v a 源代码与表示 We b Se r v i c e s 的 WSDL 元素相关联。(有关 Ja v a SE 6 中的其他 An n o t a t i o n 的更多信息,请参阅参考 资料。)使用 An t 生成服务器代码 编写服务器应用程序以后,您需要生成支持 We b Se
17、r v i c e s 的代码。首先,创建一个名为 b u i l d.x m l 的 新 An t 文件:1.右键单击该项目,并选择 Ne w Fi l e。2.在得到提示时输入名称 b u i l d.x m l,然后单击 Fi n i s h(请参见图 9)。3.确保通过右键单击此文件并选择 Op e n Wi t h An t Ed i t o r,从而使用 An t Ed i t o r 打开此文 件。从现在开始,每当您双击此文件,都会使用 An t Ed i t o r 将其打开。图 9.创建 An t 文件 4.输入如清单 2 所示的 An t 项目。清单 2.An t 脚本 5
18、.若要运行该 An t b u i l d.x m l 文件,请右键单击 Ru n As 并选择 An t Bu i l d,这将会执行该 An t 文件。6.确保此操作在 Ec l i p s e 控制台窗口中产生 BUILD SUCCESSFUL 消息,如图 10 所示。图 10.An t 构建成功 7.返回到 Ec l i p s e 项目,通过右键单击 w s Se r v e r Ex a m p l e 并选择 Re f r e s h 来刷新该项目。您现在应该在名为 c o m.m y f i r s t.w s Se r v e r.j a x w s 的包下面看到生成用于运行
19、所创建的 We b Se r v i c e s 的代码(请参见图 11)。图 11.生成的代码 发布 We b Se r v i c e s 在为 We b Se r v i c e s 的服务器生成代码以后,您需要发布该 We b Se r v i c e s 以便能够开始使用它:1.在您创建的 c o m.m y f i r s t.w s Se r v e r 包下面创建一个新类,并将其命名为类似于 Ru n Se r v i c e 的名称。2.右键单击该包并选择 Ne w Cl a s s,但这次选择用于创建 m a i n 方法存根的选项。3.编写发布 We b Se r v i
20、 c e s 的代码,如清单 3 所示。清单 3.发布代码 p a c k a g e c o m.m y f i r s t.w s Se r v e r;i m p o r t Ja v a x.x m l.w s.En d p o i n t;p u b l i c c l a s s Ru n Se r v i c e /*p a r a m a r g s */p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Sy s t e m.o u t.p r i n t l n(Sa y He l l o We b Se r
21、 v i c e s t a r t e d.);En d p o i n t.p u b l i s h(h t t p:/l o c a l h o s t:8080/w s Se r v e r Ex a m p l e,n e w Sa y He l lo();Ja v a SE 6 为发布 We b Se r v i c e s 提供了新的支持。En d p o i n t API 简单地发布 We b Se r v i c e s 端点,后者在运行时在某个 URL 处生成 WSDL。4.通过右键单击此类并选择 Ru n As Ja v a Ap p l i c a t i o n,
22、从而运行此类。Ec l i p s e IDE 控制 台窗口应该显示出来。如果未显示,请选择 Wi n d o w Sh o w Vi e w Co n s o l e。您应该 看到 We b 服务器已启动的指示,如图 12 所示。p a g e 3 图 12.正在运行服务的控制台 查看 WSDL 现在服务器已经启动并运行,您应该对其进行测试以确保它按预期工作:1.通过选择 Wi n d o w Sh o w Vi e w Ot h e r Ge n e r a l In t e r n a l We b Br o w s e r 打 开 Ec l i p s e 中的内部 We b 浏览器。
23、2.输入 URL,例如 h t t p:/l o c a l h o s t:8080/w s Se rv e r Ex a m p l e?w s d l,这应该会显示该 We b Se r v i c e s 的 WSDL 文本,如图 13 所示。图 13.显示内部 We b 浏览器的控制台 3.完成后,记住通过单击 Ec l i p s e 控制台视图中的红色方框停止该 We b Se r vi c e s 。然而,为 了继续本教程后面的操作,应该保持服务处于运行状态。测试服务器 下一步,您将使用 Ec l i p s e We b Se r v i c e s Ex p l o r e
24、 r 工具,并通过本机 WSDL 和 SOAP 调用 We b Se r v i c e s 的操作,以测试您刚才创建的 We b Se r v i c e s 的 g e t Gre e t i n g 方法。1.您可能需要切换到 Ja v a EE 透视图。单击 Wi n d o w Op e n Pe r s pe c t i v e Ot h e r。2.当窗口显示出来时,选择 Ja v a EE。3.选择 Ru n La u n c h t h e We b Se r v i c e s Ex p l o r e r。通过双击其选项卡最大化视图。您应 该看到如图 14 所示的屏幕。图
25、 14.We b Se r v i c e s Ex p l o r e r 4.单击红色圆圈所指示的图标。这将显示 WSDL 页面,如图 15 所示。图 15.WSDL 页面 5.在 Na v i g a t o r 窗格中,单击 WSDL Ma i n。Ac t i o n s 窗格已更新,如图 16 所示。6.输入 WSDL URL,在此例中为 h t t p:/l o c a l h o s t:8081/w s Se r v e r Ex a m p l e?w sd l,然后单击 Go 按钮。图 16.输入 WSDL URL 7.WSDL 应该成功地打开,并且您应该看到类似如图 1
26、7 所示的屏幕。图 17.成功打开的 WSDL 8.下一步,您将通过单击 Op e r a t i o n s 下面的 g e t Gr e e t i n g 调用一个操作(如图 17 所示)。这将产生与图 18 所示类似的屏幕。图 18.调用操作 9.在 Bo d y 部分的 g e t Gr e e t i n g 下面,单击 Ad d 链接(如图 18 所示)向值表中添加一个新 行。10.输入名称(这里为 Fi o n a),然后单击 Go 按钮。11.在 St a t u s 部分,g e t Gr e e t i n g Re s p o n s e 显示了结果。您应该在 St a
27、 t u s 部分看到类似于 r e t u r n (s t r i n g):He l l o Fi o n a 的结果(请参见图 19)。可能需要滚动或拖动视图才能看到 结果。图 19.操作结果 总结 创建、生成和发布 We b Se r v i c e s 是非常简单的,只需使用 Ec l i p s e 即可,当然还要使用 Ja v a SE 6。请继续阅读本系列教程的第 2 部分,您将在其中构建独立客户端以便与这个独立 We b Se r v i c e s 服务端 一起使用。附录:附录:We b Se r v i c e s 术语和首字母缩写词简要概述 We b Se r v i
28、 c e s 根据 W3C 的定义,We b Se r v i c e s 是“旨在支持通过网络进行的可互操作计算机到计算机交互的软件系 统”。换句话说,We b Se r v i c e s 是用于应用程序到应用程序通信的编程接口。通常,它们用作支持计算 机之间通过网络(例如 In t e r n e t)进行通信的 We b 应用程序。客户端和服务器使用遵循 SOAP 标准的 XML 消息进行通信。也就是说,We b Se r v i c e s 使用 XML 对 数据进行编码和解码,并使用 SOAP 来通过开放协议传输数据。We b Se r v i c e s 平台的其中两个基本要 素
29、为 SOAP 和 WSDL。XML 可扩展标记语言(Ex t e n s i b l e Ma r k u p La n g u a g e,XML)允许用户定义他们自己的元素。它是一种通用 规范,可以促进结构化数据在不同信息系统之间的共享(通常通过网络)。XML 旨在携带信息而不是显示 信息。换句话说,XML 除了对信息进行组织、存储和传输以外,并不实际做其他任何工作;它只是纯文本。p a g e 4 SOAP SOAP 过去代表简单对象访问协议(Si m p l e Ob j e c t Ac c e s s Pr o t o c o l),但是在 1.2 版中已经丢弃了这 个概念,因为此
30、概念太具有误导性了。它是一种轻量级的通信协议,允许应用程序使用 XML 通过网络交 换信息,或者更简单地说就是用于访问 We b Se r v i c e s 的协议。SOAP 允许应用程序彼此通信,而不管 它们运行在什么操作系统上,以及是使用什么编程语言编写的。WSDL WSDL 是应用程序可读的 We b Se r v i c e s 描述语言。它用于描述 We b Se r v i c e s 的功能,以及客户端 应用程序应该如何调用 We b Se r v i c e s 。也就是说,它在 XML 文档中描述 We b Se r v i c e s 的所有方法 及其签名、命名空间,以及
31、统一资源标识符(Un i f o r m Re s o u r c e Id e n t i f i e r,URI)的处理。URI 指定 网络上的某个资源。参考资料 学习 Ec l i p s e 资源中心。访问 W3C 网站。在 d e v e l o p e r Wo r k s 的 Ar c h i t e c t u r e 专区中,获取用以提高您在体系结构方面的技能的各种 资源。了解新的 Ja v a SE 6 功能。IBM d e v e l o p e r Wo r k s SOA a n d We b s e r v i c e s 专区提供了大量的文章,以及关于如何开发 W
32、e b Se r v i c e s 应用程序的初级、中级和高级教程。使用 IBM SOA 沙箱进行试验!通过 IBM SOA 进行实际的亲手实践来提高您的 SOA 技能。IBM SOA 网站提供 SOA 的概述,并介绍 IBM 是如何帮助您实现 SOA 的。了解关于 d e v e l o p e r Wo r k s 技术事件和网络广播的最新信息。访问 Sa f a r i 书店,浏览有关这些技术主题以及其他方面的书籍。查看快速的 We b 服务按需演示。获得产品和技术 下载 Ec l i p s e IDE f o r Ja v a EE De v e l o p e r s。下载 Ja
33、 v a SE 6。下载 IBM 产品评估版,获得来自 DB2、Lo t u s、Ra t i o n a l、Ti v o l i 和 We b Sp h e r e 的应用程序开发工具和中间件产品。讨论 参与论坛讨论。参与 d e v e l o p e r Wo r k s Bl o g,从而加入到 d e v e l o p e r Wo r k s 社区中来。作者简介 Fi o n a La m 是一名软件工程师,作为 IBM Ti v o l i Se c u r i t y De v e l o p m e n t 的成员供职于 Au s t r a l i a n De v e
34、 l o p m e n t La b o r a t o r y。Jo h n Ro b e r t s o n 是一名软件工程师,同样作为 IBM Ti v o l i Se c u r i t y De v e l o pm e n t 的成员供职于 Au s t r a l i a n De v e l o p m e n t La b o r a t o r y。第 2 部分:We b 服务客户端应用程序 使用 Ec l i p s e In t e g r a t e d De v e l o p m e n t En v i r o n m e n t(IDE)和 Ja v a
35、Pl a t f o rm,St a n d a r d Ed i t i o n (Ja v a SE)6 创建可从控制台运行的独立 We b 服务应用程序。在这本系列的第二篇教程中,继续探索 Ec l i p s e IDE 及其内置特性 TCP/IP Mo n i to r。查看服务器与客户端应用程序之间的网络传输,然后从命 令行运行应用程序。开始之前 关于本系列 此系列教程演示如何使用 Ja v a SE 6 创建可轻松地从命令行而不是从 We b 应用程序服务器容器中运行 的独立 We b 服务服务端和客户端应用程序。在简单的 He l l o Wo r l d 示例中,您将利用 E
36、c l i p s e IDE、Ja v a SE 6 和 Ap a c h e An t 轻松创建完全可以正常工作的 We b 服务服务端和客户端应用程序。您还将 使用 TCP/IP Mo n i t o r 检查服务器与客户端之间的通信流量,并使用 Ec l i p s e We b Se r v i c e s Ex p l o r e r 工具测试 We b 服务。关于本教程 本教程是本系列的第 2 部分,描述如何创建独立 We b 服务客户端应用程序,用于与第 1 部分中开发和 部署的独立 We b 服务进行通信。本教程逐步讲解如何使用 Ec l i p s e IDE、Ja v a
37、 SE 6 和 An t 开发和部 署 We b 服务客户端应用程序。p a g e 5 目标 完成本教程后,您应该知道:如何通过使用 Ec l i p s e IDE 生成代码,使用 Ja v a SE 6 编译代码,创建 We b 服务的客户端。如何使用 Ec l i p s e IDE 中基于 Ja v a 的构建工具 An t 运行专门的 Ja v a 命令,从本系列第 1 部分发布的 WSDL 生成一些代码。如何使用 Ec l i p s e IDE 中的 TCP/IP Mo n i t o r 观察、捕捉和验证服务器与客户机之间的 We b 服务 SOAP 传输。如何在 Ec l
38、i p s e IDE 外直接从命令行运行服务器和客户端应用程序。先决条件 本教程包括为具备一些 Ja v a 语言和 An t 构建的实际应用知识的初级和中级 Ja v a 程序员编写的简单 步骤。初学者到更高级的 Ja v a 开发人员将获得一些知识:学会如何构建、部署和运行独立 We b 服务服 务端和分布式客户端,以提供防火墙友好的远程通信和应用程序处理。系统需求 要按照示例进行操作,需要下载:Ec l i p s e IDE f o r Ja v a EE De v e l o p e r s Ja v a SE 6 您不必下载 An t,因为其功能与 Ec l i p s e 打包
39、在一起。本教程使用 Ga n y m e de Pa c k a g e f o r t h e Ec l i p s e IDE f o r Ja v a EE De v e l o p e r s。创建新项目 您也许还记得,在第 1 部分中,一个 Ec l i p s e 项目包含应用程序的源代码和其他相关文件。可以使用项 目作为源代码容器,或者在项目中创建文件夹,以便组织文件。为了创建 We b 服务客户端,需要创建一 个新的项目:1.选择 Fi l e Ne w Pr o j e c t。2.展开 Ja v a 文件夹并单击 Ja v a Pr o j e c t(见图 1)。图 1.
40、在 Ec l ip s e 中创建项目 3.单击 Ne x t。4.根据提示输入项目名,例如 w s Cl i e n t Ex a m p l e,如图 2 所示。图 2.在 Ec l i p s e 中输入项目详细信息 5.如果 Us e d e f a u l t JRE 单选按钮之前已默认选中,则选择该单选按钮;否则选择 Us e a p r o j e c t s p e c i f i c JRE 单选按钮,确保它是 Ja v a SE 6。6.单击 Fi ni s h 将项目与第 1 部分中安装的 Ja v a JDK 相关联。7.如果提示切换 Ja v a 透视图,单击 Ye
41、s。Ec l i p s e 环境在 Pa c k a g e Ex p l o r e r 中现在应该有两个项目,如图 3 所示。一个项目是在本教 程第 1 部分中创建的,另一个项目是刚才创建的。图 3.Ec l i p s e 中的 Pr o j e c t Ex p l o r e r 8.右键单击 w s Cl i e n t Ex a m p l e 项目下的 s r c 文件夹,然后选择菜单项 Ne w Pa c k a g e,为客户端应用程序包输入一个名称,例如 c o m.m y f i r s t.w s Cl i e n t,如图 4 所示。图 4.在 Ec l i p
42、s e 中创建包 生成 We b 服务客户端代码 为了创建客户端代码,需要运行 w s i m p o r t 任务。和在本系列第 1 部分中一样,您将从一个名为 b u i l d.x m l 的 An t 脚本中运行该任务:1.右键单击项目,选择 Ne w Fi l e。2.输入名称 b u i l d.x m l,然后单击 Fin i s h(见图 5)。3.右键单击该文件,选择 Op e n Wi t h An t Ed i t o r,An t Ed i to r 中打开该文件。在 从现在起,每当双击该文件,都会在 An t Ed i t o r 中打开它。图 5.创建 b u i
43、l d.x m l 文件 4.输入清单 1 中显示的 An t 项目。清单 1.An t 脚本 5.第 6.在运行 An t b u i l d.x m l 文件之前,必须首先回到第 1 部分 中创建的项目,并启动 Ru n Se r v i c e 服务。为此,展开该项目,右键单击 Ru n Se r v i c e 文件,p a g e 6选择 Ru n As Ja v a Ap p l i c a t i o n。7.确认 Ec l i p s e IDE 控制台窗口显示消息说该服务已启动,如图 6 所示。图 6.服务运行时的控制台 8.为了运行 An t b u i l d.x m l
44、 文件,返回到本项目(w s Cl i e n t Ex a m p l e)单击右键并选择 Ru n As ,An t Bu i l d,执行该 An t 文件。9.确认 Ec l i p s e Co n s o le 窗口中显示一条 BUILD SUCCESSFUL 消息,如图 7 所示。图 7.An t Bu i l d Su c ce s s 10.返回到 Ec l i p s e 项目,右键单击 w s Cl i e n t Ex a m p l e 并选择 Re f r e s h,或者选中项目并按 F5,刷新项目。现在在 c o m.m y f i r s t.w s Cl i
45、 e n t 包下应该可以看到生成的运行客户端的代码(见图 8)。图 8.生成的代码 在此过程中,w s i m p o r t 任务从运行 Ru n Se r v i c e 时发布的 WSDL 生成 JAX-WS 可移植工件。这 就是服务必须首先运行的原因。w s g e n 读取服务端点类,并生成部署和调用 We b 服务所需的所有工件。w s i m po r t 读取 WSDL,并生成开发、部署和调用 w e b 服务所需的所有工件。您将在下一节创建的客户端应用程序中使用这些生成的类。创建客户端应用程序 现在,您已经生成了 We b 服务客户端的代码,接下来需要在 c o m.m y
46、 f i r s t.w s Cl i e n t 包下创建使用 它的应用程序:1.右键单击那个包,选择选项 Ne w Cl a s s,然后配置它,如图 9 所示。图 9.创建一个类 2.将类创建为 p u b l i c,类中有一个 m a i n 方法。提供了含有一个类的包之后,便可以开始编写客户端代码,如清单 2 所示。清单 2.客户端应用程序 p a c k a g e c o m.m y f i r s t.w s Cl i e n t;i m p o r t j a v a x.x m l.w s.Bi n d i n g Pr o v i d e r;p u b l i c c
47、 l a s s Sa y He l l o Cl i e n t p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Sa y He l l o Se r v i c e s h s =n e w Sa y He l l o Se r v i c e();Sa y He l l o s h =(Sa y He l l o)s h s.g e t Sa y He l l o Po r t();(Bi n d i n g Pr o v i d e r)s h)。g e t Re q u e s t Co n t e x t()。p
48、 u t(Bi n d i n g Pr o v i d e r.ENDPOINT_ADDRESS_PROPERTY,h t t p:/l o c a l h o s t:8080/w s Se r v e r Ex a m p l e);Sy s t e m.o u t.p r i n t l n(Bi n d i n g Pr o v i d e r)s h)。t o St r i n g();Sy s t e m.o u t.p r i n t l n(s h.g e t Gr e e t i n g(Fi o n a);运行客户端应用程序 使用 Ec l i p s e 编写客户端应用
49、程序之后,试着在 Ec l i p s e 中运行它:1.右键单击 Sa y He l lo Cl i e n t.j a v a,并选择 Ru n As Ja v a Ap p l i c a t i o n。这时应该会显示 Ec l i p s e IDE 控制台窗口。如果没有显示控制台窗口,从菜单栏选择 Wi n d o w Sh o w Vi e w Co n s o l e。此时应该可以看到执行 We b 客户端的结果,如图 10 所示。图 10.运行客户端应用程序 当运行 Sa y He l l o Cl i e n t 应用程序时,它创建一个新服务 Sa y He l l o S
50、e r v i c e,它是由通过清单 1 中的 An t 脚本运行的 w s i m p o r t 任务生成的类之一。然后,它获得端口 Sa y He l l o,这是调用目标服务端点 上的操作的一个代理。然后,该客户端获得请求上下文,将端点地址 h t t p:/l o c a l h o s t:8080/w s Se r v e r Ex a m p l e 添加到上下文,这个上下文是用于处理请求消息的一个 m a p。这里有两条 p r i n t 语句,第一条以易于阅读的格式显示 Sa y He l l o,第二条显示返回的问候语 He l l o Fi o n a(见图 10)