创建项目
下一步,您将创建一个项目来构造 Web Services 服务端。项目包含源代码和其他相关文件,并允许您使用项目作为源文件的容器,或在项目中设置文件夹以对文件进行组织。
- 选择 File > New > Project。
- 展开 Java 文件夹并单击 Java Project(请参见图 5)。
图 5. 在 Eclipse 中创建项目
- 单击 Next。
- 在看到提示时输入项目名称,例如
wsServerExample
,如图 6 所示。
图 6. 在 Eclipse 中输入项目详细信息
- 如果先前已缺省选择了 Use default JRE 单选按钮,则选择此单选按钮;否则请选择 Use a project specific JRE 单选按钮,并确保该 JRE 为 Java SE 6。
- 单击 Finish 将项目与您先前安装的 Java JDK 相关联。
- 如果提示您切换 Java 透视图,请单击 Yes。
创建服务器
首先需要创建一个 Java 包来容纳您的 Java 类:
- 选择 File > New > Package。
- 当 New Java Package 窗口打开时,输入包名称,例如
com.myfirst.wsServer
,如图 7 所示。
图 7. 创建包
下一步,您需要为服务器代码创建一个类:
- 右键单击您刚才创建的包名称,然后选择 New > Class。按如图 8 所示对其进行配置。
图 8. 创建类
- 将该类创建为没有 main 方法存根的 public 类。
现在您已经为该包提供了一个类,下面可以开始编写服务器的代码了,如清单 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 中粗体显示的代码。这称为 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 文件:
- 右键单击该项目,并选择 New > File。
- 在得到提示时输入名称
build.xml
,然后单击 Finish(请参见图 9)。 - 确保通过右键单击此文件并选择 Open With > Ant Editor,从而使用 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 控制台窗口中产生
BUILD SUCCESSFUL
消息,如图 10 所示。
图 10. Ant 构建成功
- 返回到 Eclipse 项目,通过右键单击 wsServerExample 并选择 Refresh 来刷新该项目。您现在应该在名为 com.myfirst.wsServer.jaxws 的包下面看到生成用于运行所创建的 Web Services 的代码(请参见图 11)。
图 11. 生成的代码
发布 Web Services
在为 Web Services 的服务器生成代码以后,您需要发布该 Web Services 以便能够开始使用它:
- 在您创建的 com.myfirst.wsServer 包下面创建一个新类,并将其命名为类似于
RunService
的名称。 - 右键单击该包并选择 New > Class,但这次选择用于创建 main 方法存根的选项。
- 编写发布 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。 - 通过右键单击此类并选择 Run As > Java Application,从而运行此类。Eclipse IDE 控制台窗口应该显示出来。如果未显示,请选择 Window > Show View > Console。您应该看到 Web 服务器已启动的指示,如图 12 所示。
图 12. 正在运行服务的控制台
查看 WSDL
现在服务器已经启动并运行,您应该对其进行测试以确保它按预期工作:
- 通过选择 Window > Show View > Other > General > Internal Web Browser 打开 Eclipse 中的内部 Web 浏览器。
- 输入 URL,例如
http://localhost:8080/wsServerExample?wsdl
,这应该会显示该 Web Services 的 WSDL 文本,如图 13 所示。
图 13. 显示内部 Web 浏览器的控制台
- 完成后,记住通过单击 Eclipse 控制台视图中的红色方框停止该 Web Services 。 然而,为了继续本教程后面的操作,应该保持服务处于运行状态。
测试服务器
下一步,您将使用 Eclipse Web Services Explorer 工具,并通过本机 WSDL 和 SOAP 调用 Web Services 的操作,以测试您刚才创建的 Web Services 的 getGreeting
方法。
- 您可能需要切换到 Java EE 透视图。单击 Window > Open Perspective > Other。
- 当窗口显示出来时,选择 Java EE。
- 选择 Run > Launch the Web Services Explorer。通过双击其选项卡最大化视图。您应该看到如图 14 所示的屏幕。
图 14. Web Services Explorer
- 单击红色圆圈所指示的图标。这将显示 WSDL 页面,如图 15 所示。
图 15. WSDL 页面
- 在 Navigator 窗格中,单击 WSDL Main。Actions 窗格已更新,如图 16 所示。
- 输入 WSDL URL,在此例中为
http://localhost:8081/wsServerExample?wsdl
,然后单击 Go 按钮。
图 16. 输入 WSDL URL
- WSDL 应该成功地打开,并且您应该看到类似如图 17 所示的屏幕。
图 17. 成功打开的 WSDL
- 下一步,您将通过单击 Operations 下面的 getGreeting 调用一个操作(如图 17 所示)。这将产生与图 18 所示类似的屏幕。
图 18. 调用操作
- 在 Body 部分的
getGreeting
下面,单击 Add 链接(如图 18 所示)向值表中添加一个新行。 - 输入名称(这里为
Fiona
),然后单击 Go 按钮。 - 在 Status 部分,
getGreetingResponse
显示了结果。您应该在 Status 部分看到类似于return (string): Hello Fiona
的结果(请参见图 19)。可能需要滚动或拖动视图才能看到结果。
图 19. 操作结果
总结
创建、生成和发布 Web Services 是非常简单的,只需使用 Eclipse 即可,当然还要使用 Java SE 6。请继续阅读本系列教程的第 2 部分,您将在其中构建独立客户端以便与这个独立 Web Services 服务端一起使用。