快速业务通道

使用Eclipse和Java SE 6创建独立Web Services应用程序,第2部分 - 编程入门网

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

生成 Web 服务客户端代码

为了创建客户端代码,需要运行 wsimport 任务。和在本系列第 1 部分中一 样,您将从一个名为 build.xml 的 Ant 脚本中运行该任务:

右键单击项目,选择 New > File。

输入名称 build.xml,然后单击 Finish(见图 5)。

右键单击该文件,选择 Open With > Ant Editor,在 Ant Editor 中打开 该文件。从现在起,每当双击该文件,都会在 Ant Editor 中打开它。

图 5. 创建 build.xml 文件

使用Eclipse和Java SE 6创建独立Web Services应用程序,第2部分(5)

时间:2011-05-15 IBM John Robertson

输入清单 1 中显示的 Ant 项目。

清单 1. Ant 脚本

<project default="wsimport">   <target name="wsimport">    <exec executable="{java.home}/../bin/wsimport">     <arg line="-keep -s ./src -p com.myfirst.wsClient       -d ./bin http://localhost:8080/wsServerExample? wsdl"/>    </exec>   </target> </project>

在运行 Ant build.xml 文件之前,必须首先回到第 1 部分 中创建的项目, 并启动 RunService 服务。为此,展开该项目,右键单击 RunService 文件,选 择 Run As > Java Application。

确认 Eclipse IDE 控制台窗口显示消息说该服务已启动,如图 6 所示。

图 6. 服务运行时的控制台

为了运行 Ant build.xml 文件,返回到本项目(wsClientExample),单击右 键并选择 Run As > Ant Build,执行该 Ant 文件。

确认 Eclipse Console 窗口中显示一条 BUILD SUCCESSFUL 消息,如图 7 所 示。

图 7. Ant Build Success

使用Eclipse和Java SE 6创建独立Web Services应用程序,第2部分(6)

时间:2011-05-15 IBM John Robertson

返回到 Eclipse 项目,右键单击 wsClientExample 并选择 Refresh,或者选 中项目并按 F5,刷新项目。现在在 com.myfirst.wsClient 包下应该可以看到生 成的运行客户端的代码(见图 8)。

图 8. 生成的代码

在此过程中,wsimport 任务从运行 RunService 时发布的 WSDL 生成 JAX-WS 可移植工件。这就是服务必须首先运行的原因。

wsgen 读取服务端点类,并生成部署和调用 Web 服务所需的所有工件。

wsimport 读取 WSDL,并生成开发、部署和调用 web 服务所需的所有工件。

您将在下一节创建的客户端应用程序中使用这些生成的类。

创建客户端应用程序

现在,您已经生成了 Web 服务客户端的代码,接下来需要在 com.myfirst.wsClient 包下创建使用它的应用程序:

右键单击那个包,选择选项 New > Class,然后配置它,如图 9 所示。

图 9. 创建一个类

使用Eclipse和Java SE 6创建独立Web Services应用程序,第2部分(7)

时间:2011-05-15 IBM John Robertson

将类创建为 public,类中有一个 main 方法。

提供了含有一个类的包之后,便可以开始编写客户端代码,如清单 2 所示。

清单 2. 客户端应用程序

package com.myfirst.wsClient; import javax.xml.ws.BindingProvider; public class SayHelloClient {    public static void main(String args[]) {      SayHelloService shs = new SayHelloService();      SayHello sh = (SayHello) shs.getSayHelloPort ();      ((BindingProvider)sh)。getRequestContext()。put (BindingProvider.        ENDPOINT_ADDRESS_PROPERTY,  "http://localhost:8080/wsServerExample");      System.out.println( ((BindingProvider)sh)。toString()  );      System.out.printl

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号