在你开始前
关于本系列
本教程系列演示如何创建独立的Web服务服务器和客户端应用程序,您可以使用Java SE 6从命令行轻松地运行它们,而不是在Web应用程序服务器容器中运行。 通过一个简单的Hello World示例,您将利用Eclipse IDE,Java SE 6和Apache Ant轻松创建功能全面的Web服务服务器和客户端应用程序。 您还将使用TCP / IP监视器来检查服务器与客户机之间的通信流量,并使用Eclipse Web Services Explorer工具来测试Web服务。
关于本教程
本教程是该系列的第1部分,向您介绍如何使用Eclipse IDE,Java SE 6和Ant发布Web服务应用程序。 它为第2部分奠定了基础,第2部分描述了Web服务客户端应用程序的创建。
目标
完成本教程后,您应该知道:
- Web服务是什么,以及与在Eclipse中用来查看发布的Web服务描述语言(WSDL)文件的浏览器有关的标准。
- 如何创建Web服务的服务器端,包括如何安装和配置Eclipse IDE和Java开发工具包(JDK),以便它们一起执行以生成使用Java SE 6编译的代码。
- 如何在Eclipse IDE中使用基于Ant Java的构建工具来运行特殊的Java命令来生成一些代码。
先决条件
本教程包括一些简单的步骤,这些步骤是为入门级到中级Java程序员编写的,它们具有Java语言和Ant构建的一些实用知识。 更高级的Java开发人员的新手将获得一些有关如何构建,部署和运行独立的Web服务服务器和分布式客户端以提供防火墙友好的远程通信和应用程序处理的知识。
系统要求
要遵循示例,您需要下载:
您不必下载Ant,因为它的功能与Eclipse捆绑在一起。 本教程使用用于Java EE开发人员的Eclipse IDE的Ganymede软件包。
设置您的开发环境
安装Java SE 6
- 下载并安装最新的Java SE 6 JDK 。 Java SE 6具有许多新功能,包括Web服务API。
- 双击可执行文件,然后按照安装说明进行操作。 我们建议您执行典型安装并维护所有默认设置,例如位置。
- 在询问时,选择是否要将Java运行时环境安装为系统JVM,以及是否希望将任何浏览器与Java插件关联。
- 单击完成安装。
- 关闭所有打开的浏览器窗口。
- 完成后,将显示一条感谢消息,确认安装成功。 单击确定关闭。
注意:将Java运行时环境(JRE)安装为系统Java虚拟机(JVM)意味着它将替换在Microsoft®Windows®目录中找到的所有JVM或在其中找不到新副本的地方。 将任何浏览器与Java插件相关联意味着该新版本的Java将用于applet。
安装Eclipse
Eclipse是一个开源,可扩展的开发平台,可以安装在几乎所有操作系统上。
安装Eclipse非常简单,因为没有安装过程:
- 下载适用于Java EE开发人员的Eclipse IDE 。
- 将文件提取到计算机上的所需位置。 然后,您应该看到一个名为eclipse的文件夹。 为了方便起见,最好在桌面上创建eclipse.exe文件的快捷方式。
配置Eclipse
首次运行Eclipse时,将显示Welcome页面,如图1所示。如果您不想阅读Overview和其他产品,只需关闭该页面,然后稍后选择Help> Welcome即可返回 。
图1.欢迎屏幕
将Eclipse配置为使用您先前安装的Java SE 6 JDK。 您想要将您的项目与此版本的Java相关联:
- 选择窗口>首选项> Java>已安装的JRE ,然后单击添加按钮。
- 输入名称,例如
Java SE 6
,以轻松识别它的版本。 - 单击浏览按钮,然后找到JRE 60的安装目录。
- 单击“ 确定” (请参见图2)。
图2.添加一个新的JRE
现在,新的JRE应该出现在已安装的JRE列表中,如图3所示。 - 选中Java SE 6复选框,然后单击确定 。
图3.选择新的JRE
- 要设置对已安装Java版本的合规性,请选择窗口>首选项> Java>编译器 。
- 从“编译器符合性级别”下拉列表中选择1.6 ,如图4所示。
图4.设置合规性
建立专案
接下来,您将创建一个项目来构建Web服务服务器。 项目包含源代码和其他相关文件,它使您可以将项目用作源容器或在项目内设置文件夹以组织文件。
- 选择文件>新建>项目 。
- 展开Java文件夹,然后单击Java Project (参见图5)。
图5.在Eclipse中创建一个项目
- 单击下一步 。
- 出现提示时,输入项目名称,例如
wsServerExample
,如图6所示。图6.在Eclipse中输入项目详细信息
- 如果先前默认情况下选择使用默认JRE单选按钮,则选择它;否则,请选择它。 否则, 请选择“ 使用项目特定的JRE”单选按钮,以确保它是Java SE 6。
- 单击完成,将您的项目与之前安装的Java JDK关联。
- 如果系统提示您切换Java透视图,请单击是 。
创建服务器
首先,您需要创建一个Java包来容纳您的Java类:
- 选择文件>新建>包 。
- 当“ New Java Package”窗口打开时,输入软件包的名称,例如
com.myfirst.wsServer
,如图7所示。图7.创建一个包
接下来,您需要为服务器代码创建一个类:
- 右键单击刚创建的包名称,然后选择“ 新建”>“类” 。 如图8所示进行配置。
图8.创建一个类
- 创建没有公共方法存根的公共类。
现在,您已经为包提供了一个类,您可以为服务器编写代码,如清单1所示。
清单1.服务器代码
package com.myfirst.wsServer;
import javax.jws.WebService;@WebService
public class SayHello {
private static final String SALUTATION = "Hello";
public String getGreeting( String name ) {
return SALUTATION + " " + name;
}
}
请注意清单1中以粗体显示的文本。这称为注释或元数据 ,由Java SE 5中引入的Web服务元数据规范使用。开发人员在对其应用注释以指示运行时引擎之前定义其类和方法。如何将类及其方法启用为Web服务和Web服务操作。 Java SE 6附带了这样的引擎。
@WebService
批注将SayHello
类标记为实现Web服务,这导致产生可部署的Web服务。 此特定注释是WSDL映射注释,并将Java源代码与代表Web服务的WSDL元素相关联。 (有关Java SE 6中其他注释的更多信息,请参见参考资料 。)
用Ant生成服务器代码
编写服务器应用程序后,需要生成支持Web服务的代码。 首先,创建一个名为build.xml的新Ant文件:
- 右键单击项目,然后选择“ 新建”>“文件” 。
- 在出现提示时输入名称
build.xml
,然后单击Finish (参见图9)。 - 通过右键单击该文件并选择“ 打开方式”>“ Ant编辑器 ”,确保使用Ant Editor打开该文件。 从现在开始,每当您双击此文件时,它将使用Ant Editor打开。
图9.创建一个Ant文件
- 输入清单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>
- 要运行Ant build.xml文件,请右键单击Run As,然后选择Ant Build ,这将执行Ant文件。
- 确保这导致在Eclipse Console窗口中
BUILD SUCCESSFUL
消息,如图10所示。图10. Ant构建成功
- 返回Eclipse项目并通过右键单击wsServerExample并选择Refresh刷新项目 。 现在,您应该看到生成的代码,以运行在名为com.myfirst.wsServer.jaxws的新程序包下创建的Web服务(请参见图11)。
图11.生成的代码
发布网络服务
为Web服务的服务器生成代码后,需要发布它,以便可以开始使用它:
- 在您创建的com.myfirst.wsServer包下创建一个新类,并将其命名为
RunService
。 - 右键单击该包,然后选择“ 新建”>“类” ,但这一次选择创建主方法存根的选项。
- 编写代码以发布您的Web服务,如清单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服务提供了新的支持。
Endpoint
API只是发布Web服务端点,该端点在运行时在URL上生成WSDL。 - 通过右键单击该类并选择Run As> Java Application来运行该类。 将会显示“ Eclipse IDE控制台”窗口。 如果不是,请选择“ 窗口”>“显示视图”>“控制台” 。 您应该看到Web服务器已启动的指示,如图12所示。
图12.运行服务的控制台
查看WSDL
现在服务器已启动并正在运行,您应该对其进行测试以确保其正常运行:
- 通过选择“ 窗口”>“显示视图”>“其他”>“常规”>“内部Web浏览器”,在Eclipse中打开内部Web浏览器 。
- 输入URL,例如
http://localhost:8080/wsServerExample?wsdl
,该URL应该显示Web服务的WSDL文本,如图13所示。图13.带有内部Web浏览器的控制台
- 完成后,可以通过单击Eclipse Console视图中的红色方块来停止Web服务。 但是,要继续本教程,Web服务需要保持运行。
测试服务器
接下来,您将使用Eclipse Web Services Explorer工具通过本机WSDL和SOAP调用Web服务的操作,以测试刚刚创建的Web服务的getGreeting
方法。
- 您可能需要更改为Java EE透视图。 单击窗口>打开透视图>其他 。
- 出现窗口时,选择Java EE 。
- 选择运行>启动Web服务资源管理器 。 通过双击其选项卡最大化视图。 您应该看到如图14所示的屏幕。
图14. Web服务浏览器
- 单击红色圆圈指示的图标。 这将显示WSDL页面,如图15所示。
图15. WSDL页面
- 在导航器窗格中,单击WSDL Main 。 “操作”窗格已更新,如图16所示。
- 输入WSDL URL,在本例中为
http://localhost:8080/wsServerExample?wsdl
,然后单击“执行”按钮。图16.输入WSDL URL
- WSDL应该成功打开,并且您应该看到类似于图17的屏幕。
图17.成功打开的WSDL
- 接下来,单击“操作”下的getGreeting调用一个操作(如图17所示)。 这将产生类似于图18的屏幕。
图18.调用操作
- 在“
getGreeting
”部分的getGreeting
下,单击“ 添加”链接(如图18所示)以向值表添加新行。 - 输入名称(在此为
Fiona
),然后单击“执行”按钮。 - 在“状态”部分中,
getGreetingResponse
显示结果。 您应该看到“状态”部分中的结果,例如return (string): Hello Fiona
(请参见图19)。 您可能需要滚动或拖动视图才能查看结果。图19.操作结果
摘要
创建,生成和发布Web服务服务器就像使用Eclipse(当然还有Java SE 6)一样简单。请继续关注本教程系列的第2部分,在该部分中,您将构建独立的客户端以与该标准一起使用,单独的Web服务服务器。
附录:Web服务术语和缩写的简要概述
网络服务
根据W3C,Web服务是“旨在通过网络支持可互操作的机器对机器交互的软件系统”。 换句话说,Web服务是用于应用程序到应用程序通信的程序接口。 通常,它们用作Web应用程序,可通过网络(如Internet)在计算机之间进行通信。
客户端和服务器使用遵循SOAP标准的XML消息进行通信。 也就是说,Web服务使用XML编码和解码数据,使用SOAP使用开放协议传输数据。 Web服务平台的两个基本元素是SOAP和WSDL。
XML格式
可扩展标记语言(XML)使用户可以定义自己的元素。 这是一个通用规范,可促进跨不同信息系统(通常跨网络)共享结构化数据。 XML旨在承载信息而不显示信息。 换句话说,除了构造,存储和传输信息外,XML实际上不做任何事情。 这只是纯文本。
肥皂
SOAP曾经代表简单对象访问协议,但是在1.2版中已将其删除,因为它被认为具有误导性。 它是一种轻量级的通信协议,使应用程序可以使用XML(或更简单地说,是访问Web服务)在网络上交换信息。 SOAP允许应用程序彼此通信,而不管它们运行在哪个操作系统上以及以何种编程语言编写。
WSDL
WSDL是一种应用程序可读的Web服务描述语言。 它用于描述Web服务的功能以及客户端应用程序应如何调用它。 也就是说,它描述了XML文档中Web服务的所有方法及其签名,名称空间以及处理统一资源标识符(URI)。 URI命名网络上的资源。
翻译自: https://www.ibm.com/developerworks/webservices/tutorials/ws-eclipse-javase1/ws-eclipse-javase1.html