Eclipse 和 Java SE 6 创建独立 Web Services 应用 二

来源:互联网 发布:linux 查看进程号 编辑:程序博客网 时间:2024/04/30 09:14

 Eclipse 和 Java SE 6 创建独立 Web Services 应用  二

 

创建服务器

首先需要创建一个 Java 包来容纳您的 Java 类:

  1. 选择 File > New > Package
  2. 当 New Java Package 窗口打开时,输入包名称,例如 com.myfirst.wsServer,如图 7 所示。
    图 7. 创建包
    NewProject 

下一步,您需要为服务器代码创建一个类:

  1. 右键单击您刚才创建的包名称,然后选择 New > Class。按如图 8 所示对其进行配置。
    图 8. 创建类
    NewClass 
  2. 将该类创建为没有 main 方法存根的 public 类。

现在您已经为该包提供了一个类,下面可以开始编写服务器的代码了,如清单 1 所示。

清单 1. 服务器代码

package com.myfirst.wsServer;import Javax.jws.WebService;@WebServicepublic class SayHello { private static final String SALUTATION = "Hello"; public String getGreeting( String name ) {  return SALUTATION + " " + name; }}

请注意清单 1 中粗体显示的代码。这称为 Annotation元数据,由 Java SE 5 中引入的 Web Services 元数据规范 (Web Services Metadata Specification) 所使用。开发人员在对类和方法应用 Annotation 之前定义类和方法,以向运行时引擎指明如何将类及其方法作为 Web Services 和 Web Services 操作来启用。Java SE 6 附带了这样一个引擎。

@WebService Annotation 将 SayHello 类标记为实现某个 Web Services ,从而产生可部署的 Web Services 。这个特定的 Annotation 是一个 WSDL 映射 Annotation,并将 Java 源代码与表示 Web Services 的 WSDL 元素相关联。(有关 Java SE 6 中的其他 Annotation 的更多信息,请参阅参考资料。)

 

 

使用 Ant 生成服务器代码

编写服务器应用程序以后,您需要生成支持 Web Services 的代码。首先,创建一个名为 build.xml 的新 Ant 文件:

  1. 右键单击该项目,并选择 New > File
  2. 在得到提示时输入名称 build.xml,然后单击 Finish(请参见图 9)。
  3. 确保通过右键单击此文件并选择 Open With > Ant Editor,从而使用 Ant Editor 打开此文件。从现在开始,每当您双击此文件,都会使用 Ant Editor 将其打开。
    图 9. 创建 Ant 文件
    AntFile 
  4. 输入如清单 2 所示的 Ant 项目。
    清单 2. Ant 脚本
    <project default="wsgen"> <target name="wsgen" >    <exec executable="wsgen">        <arg line="-cp ./bin -keep -s ./src -d ./bin com.myfirst.wsServer.SayHello"/>       </exec>      </target></project>
  5. 若要运行该 Ant build.xml 文件,请右键单击 Run As 并选择 Ant Build,这将会执行该 Ant 文件。
  6. 确保此操作在 Eclipse 控制台窗口中产生 BUILD SUCCESSFUL 消息,如图 10 所示。
    图 10. Ant 构建成功
    SuccessBuild 
  7. 返回到 Eclipse 项目,通过右键单击 wsServerExample 并选择 Refresh 来刷新该项目。您现在应该在名为 com.myfirst.wsServer.jaxws 的包下面看到生成用于运行所创建的 Web Services 的代码(请参见图 11)。
    图 11. 生成的代码
    GeneratedCode 

    发布 Web Services

    在为 Web Services 的服务器生成代码以后,您需要发布该 Web Services 以便能够开始使用它:

    1. 在您创建的 com.myfirst.wsServer 包下面创建一个新类,并将其命名为类似于 RunService 的名称。
    2. 右键单击该包并选择 New > Class,但这次选择用于创建 main 方法存根的选项。
    3. 编写发布 Web Services 的代码,如清单 3 所示。
      清单 3. 发布代码
      package com.myfirst.wsServer;import Javax.xml.ws.Endpoint;public class RunService { /** * @param args */     public static void main(String[] args) {  System.out.println("SayHello Web Service started.");  Endpoint.publish("http://localhost:8080/wsServerExample", new SayHello()); }}

      Java SE 6 为发布 Web Services 提供了新的支持。Endpoint API 简单地发布 Web Services 端点,后者在运行时在某个 URL 处生成 WSDL。

    4. 通过右键单击此类并选择 Run As > Java Application,从而运行此类。Eclipse IDE 控制台窗口应该显示出来。如果未显示,请选择 Window > Show View > Console。您应该看到 Web 服务器已启动的指示,如图 12 所示。
      图 12. 正在运行服务的控制台

      RunService

 

 

 

查看 WSDL

现在服务器已经启动并运行,您应该对其进行测试以确保它按预期工作:

  1. 通过选择 Window > Show View > Other > General > Internal Web Browser 打开 Eclipse 中的内部 Web 浏览器。
  2. 输入 URL,例如 http://localhost:8080/wsServerExample?wsdl,这应该会显示该 Web Services 的 WSDL 文本,如图 13 所示。
    图 13. 显示内部 Web 浏览器的控制台
    TestServer 
  3. 完成后,记住通过单击 Eclipse 控制台视图中的红色方框停止该 Web Services 。 然而,为了继续本教程后面的操作,应该保持服务处于运行状态。

 

测试服务器

下一步,您将使用 Eclipse Web Services Explorer 工具,并通过本机 WSDL 和 SOAP 调用 Web Services 的操作,以测试您刚才创建的 Web Services 的 getGreeting 方法。

  1. 您可能需要切换到 Java EE 透视图。单击 Window > Open Perspective > Other
  2. 当窗口显示出来时,选择 Java EE
  3. 选择 Run > Launch the Web Services Explorer。通过双击其选项卡最大化视图。您应该看到如图 14 所示的屏幕。
    图 14. Web Services Explorer
    WSExplorer 
  4. 单击红色圆圈所指示的图标。这将显示 WSDL 页面,如图 15 所示。
    图 15. WSDL 页面
    WSDLPage 
  5. 在 Navigator 窗格中,单击 WSDL Main。Actions 窗格已更新,如图 16 所示。
  6. 输入 WSDL URL,在此例中为 http://localhost:8081/wsServerExample?wsdl,然后单击 Go 按钮。
    图 16. 输入 WSDL URL
    WSDLAction 
  7. WSDL 应该成功地打开,并且您应该看到类似如图 17 所示的屏幕。
    图 17. 成功打开的 WSDL
    WSDLOpened 
  8. 下一步,您将通过单击 Operations 下面的 getGreeting 调用一个操作(如图 17 所示)。这将产生与图 18 所示类似的屏幕。
    图 18. 调用操作
    WSDLEndpoint 
  9. 在 Body 部分的 getGreeting 下面,单击 Add 链接(如图 18 所示)向值表中添加一个新行。
  10. 输入名称(这里为 Fiona),然后单击 Go 按钮。
  11. 在 Status 部分,getGreetingResponse 显示了结果。您应该在 Status 部分看到类似于 return (string): Hello Fiona 的结果(请参见图 19)。可能需要滚动或拖动视图才能看到结果。
    图 19. 操作结果
    WSDLResult 

总结

创建、生成和发布 Web Services 是非常简单的,只需使用 Eclipse 即可,当然还要使用 Java SE 6。请继续阅读本系列教程的第 2 部分,您将在其中构建独立客户端以便与这个独立 Web Services 服务端一起使用。

Web Services

根据 W3C 的定义,Web Services 是“旨在支持通过网络进行的可互操作计算机到计算机交互的软件系统”。换句话说,Web Services 是用于应用程序到应用程序通信的编程接口。通常,它们用作支持计算机之间通过网络(例如 Internet)进行通信的 Web 应用程序。

客户端和服务器使用遵循 SOAP 标准的 XML 消息进行通信。也就是说,Web Services 使用 XML 对数据进行编码和解码,并使用 SOAP 来通过开放协议传输数据。Web Services 平台的其中两个基本要素为 SOAP 和 WSDL。

XML

可扩展标记语言(Extensible Markup Language,XML)允许用户定义他们自己的元素。它是一种通用规范,可以促进结构化数据在不同信息系统之间的共享(通常通过网络)。XML 旨在携带信息而不是显示信息。换句话说,XML 除了对信息进行组织、存储和传输以外,并不实际做其他任何工作;它只是纯文本。

SOAP

SOAP 过去代表简单对象访问协议 (Simple Object Access Protocol),但是在 1.2 版中已经丢弃了这个概念,因为此概念太具有误导性了。它是一种轻量级的通信协议,允许应用程序使用 XML 通过网络交换信息,或者更简单地说就是用于访问 Web Services 的协议。SOAP 允许应用程序彼此通信,而不管它们运行在什么操作系统上,以及是使用什么编程语言编写的。

WSDL

WSDL 是应用程序可读的 Web Services 描述语言。它用于描述 Web Services 的功能,以及客户端应用程序应该如何调用 Web Services 。也就是说,它在 XML 文档中描述 Web Services 的所有方法及其签名、命名空间,以及统一资源标识符(Uniform Resource Identifier,URI)的处理。URI 指定网络上的某个资源。

原创粉丝点击