Web 服务是分布式应用程序组件,符合使它们可在外部使用的标准。分布式环境的剧增需要企业能够在开放网络上将一个应用程序的全部或部分功能公开给其他应用程序。Web 服务解决集成应用程序的问题,这些应用程序都可独立开发并在多个软件和硬件平台上运行。
NetBeans IDE 5.0 与基于 JSR-109 的 web 服务支持绑定,JSR-109 是一种基于 JAX-RPC (JSR-101) 的适合于 J2EE 开发的开发模式。NetBeans IDE 5.0 中的 Web 服务功能是 J2EE 特性的端到端集合的一部分。而且,NetBeans IDE 5.0 还提供创建 web 服务和 web 服务客户端的向导。
命名项目 HiWS,将 Project Folder 更改到计算机上的任一文件夹,并确保在 Server 下拉式列表中选择您选择的服务器。注意,只有已经向 IDE 注册的服务器才能用于 Server 下拉式列表。
单击 Finish。
创建 Web 服务
右键单击项目节点并选择 New > Web Service。命名 web 服务 HiWS,在 Package 字段键入 org.me.hi,并单击 Finish。
创建和编译 web 服务时,请等候几秒钟。在 Source Editor 中开启称作 HiWSImpl.java(在 web 应用程序中)的实现类或称作 HiWSBean.java(在 EJB 模块中)的会话 bean。
在 Projects 窗口中,展开 Web Services 节点,右键单击 HiWS web service 节点,并选择 Add Operation。在 Name 字段键入 sayHi,在 Type 下拉式列表中键入 String。单击 Add 并定义类型 java.lang.String 的命名为 s 的参数。单击 OK。单击 OK。
启动服务器并部署 web 服务。应该看到在您的浏览器中显示的 web 服务的 WSDL 文件。该 WSDL 文件发布了 web 服务的端点,所以负责创建 Web 服务客户端的开发人员可以知道 Web 服务可以提供哪种功能。
对于作为会话 bean 实现的 web 服务,在 Projects 窗口中右键单击 HiWS 项目,并选择 Deploy Project。启动服务器并部署 web 服务。注意,会话 bean 不在浏览器中显示。
Web 服务必须保持部署状态,以便能够在 "Consuming the Web Service" 部分创建 web 服务客户端。
注册和测试 Web 服务
在 Projects 窗口中,展开 Web Service 节点,右键单击 HiWS web 服务节点,并选择 Add to Registry。
您可能收到与以下形式类似的错误消息:
Unable to add web service to registry. Make sure it has been deployed,
the server is running, and the correct WSDL URL was entered.
如果收到此错误消息,则要确保部署了 web 服务,然后再次选择 Add to Registry。
即出现一个带有建议的用于注册 web 服务的 URL 的对话框。
记下该 URL,因为您需要在稍后创建 web 服务客户端时使用。单击 OK。
在 Runtime 窗口 (Ctrl-5) 中,展开 Web Services 节点并且持续展开节点,直到到达 sayHi 节点。右键单击 sayHi 节点并选择 Test Operation。在 Test Web Service Operation 对话框中,在 Value 文本框中键入 "John" 并单击 Submit。结果 "Hi John!" 即显示在对话框的底部。单击 Close。
查看服务器日志,可以看到由消息处理程序生成的日志消息。例如,如果使用的是 Sun Java System Application Server,则要展开 Runtime 窗口下的 Servers 节点,右键单击该服务器的节点,并选择 View Server Log。该 server.log 文件即显示,并在结尾处出现类似于以下形式的消息:
|Log message:Wed Sep 07 10:47:45 CEST 2005--sayHi String_1:John |#]
这是您在前一部分创建的 SOAP 消息处理程序生成的日志消息。
既然测试了操作,并且对 web 服务的工作及可能对其他操作有用的情况感到满意,您可以部署它,以便让需要它的客户端使用。
使用 Web 服务
使用 web 服务是客户端使用 web 服务时进行的操作。使用 IDE 设置客户端很方便,所以它可以使用 web 服务。使用向导导入描述 web 服务接口的 WSDL 文件。然后将其集成到客户端,以便 web 服务执行对您有用的操作。
注意:Web 服务可用于 web 应用程序或 Java 应用程序。在下面的例子中,您只能将 web 服务用于 web 应用程序。有关 web 服务客户端的更多信息(无论在 web 应用程序还是在 Java 应用程序中实现的),请参见使用 NetBeans IDE 5.0 开发 Web 服务客户端的快速入门指南。
创建 Web 应用程序项目
选择 File > New Project (Ctrl-Shift-N)。在 Categories 下选择 Web。在 Projects 下选择 Web Application。单击 Next。将项目命名为 HiWSClient,将 Project Folder 更改到计算机上的任一文件夹,并确保在 Server 下拉式列表中选择您选择的服务器。单击 Finish。
发现关于 Web 服务的信息
右键单击 HiWSClient 项目节点,选择 New > Web Service Client。在 WSDL URL 文本框中复制和粘贴正在运行的 web 服务的 URL。例如,URL 可以是以下形式:
对于 Sun Java System Application Server,选择 J2EE Container 生成的静态 stub。
对于其他服务器(如 JBoss 应用服务或 Tomcat Web 服务器),必须选择 IDE 生成的静态 stub。
单击 Finish。
展开 Web Service Reference 节点并且保持展开节点,直到到达 sayHi 节点。右键单击 sayHi 节点并选择 Test Operation。在 Test Web Service Operation 对话框中,在 Value 文本框中键入 "John" 并单击 Submit。结果 "Hi John!" 即显示在对话框的底部。既然测试了操作,并且对公开的 web 服务对您有用的情况感到满意,您就要准备开发与其交互的客户端应用程序。
开发 Web 服务客户端
右键单击 HiWSClient 项目节点并选择 New > Servlet。命名 web 服务 HiServlet,在 Package 下拉式列表中键入 org.me.hi,单击 Next,然后单击 Finish。在 Source Editor 中打开 servlet HiServlet.java。
在 Source Editor 中,在 HiServlet 类中的 processRequest 操作内右键单击。选择 Web Service Client Resources > Call Web Service Operation,选择 sayHi 操作并单击 OK。