在本课程中,您将了解如何创建自底向上的 EJB Web Service。
WSDL 文档描述在何处部署 Web Service 以及此服务提供了哪些操作。可以按照下列步骤来创建 WSDL 文档、部署描述符文件、代理和样本:
- 单击。选择 Web Service 以显示各种 Web Service 向导。选择 Web Service 向导。单击下一步以启动 Web Service 向导。
- 在 Web Service 类型字段中,选择自底向上的 EJB Web Service。
- 通过单击浏览来选择服务实现。将显示一个窗口,它列示了所有可用的企业 bean。选择 TestEJB bean。
- 为了创建服务和客户机以及在服务器上同时启动它们,将服务的滑块移到“启动”位置,而将客户机的滑块移到“测试”位置。这将创建所有相应的服务和客户机代码、项目和路由器模块,将它们与正确的 EAR 相关联,创建部署代码,在目标服务器上安装 EAR 以及启动服务。但是并不会测试该服务,这是因为“Web Service 资源管理器”不支持基于 JMS 的 Web Service。
- 确保选择了下列服务器端选项:
- 服务器:WebSphere V6.1 服务器
- 运行时:IBM WebSphere JAX-RPC 运行时环境
- 服务项目:JMSService
- 服务 EAR 项目:JMSEAR
确保选择了下列客户端选项:- 服务器:WebSphere V6.1 服务器
- 运行时:IBM WebSphere JAX-RPC 运行时环境
- 客户机项目:JMSServiceEJBClient
- 客户机 EAR 项目:JMSServiceEJBClientEAR
向导将创建尚不存在的项目。当您选择了所有选项之后,它看起来应该为如下所示:
- 在“Web Service EJB 配置”页上,选择 JMS 作为传输方法,并且,如果已经选中了 HTTP 复选框,则将它清除。应选择作为 JMSEAR 的一部分导入的 JMSServiceRouter 路由器项目。单击下一步。 因为 JMS 不符合 WS-I(除非您已将 WS-I 一致性设置设置为忽略),所以,将显示一条错误消息,警告您存在这种不一致性。如果单击详细信息,则会显示产生警告消息的原因。可以安全地忽略此警告;单击忽略。
- 在“EJB Web Service 绑定配置”页上,必须手工输入下列值以与前一课程中创建的队列和连接工厂相匹配:
- 确保选择了队列作为 JMS 目标。本教程并不适用于所有主题。
- 选择 jms/ws_tutorial_queue 作为目标 JNDI 名称。
- 选择 jms/ws_tutorial_qcf 作为 JMS 连接工厂。
- 端口组件的名称就是目标服务名称,因此,TestEJB 将用作目标服务名称。
- 选择 eis/ws_tutorial_JMSRouter 作为 ActivationSpec JNDI 名称。
已完成的页看起来应该类似于以下内容:
- 在向导的“Web Service Java Bean 标识”页中,可以指定 Web Service URI、作用域和所生成文件的名称。还可以选择将包括在
Web Service 中的方法、编码样式并为 Web Service 配置安全性。单击下一步以接受缺省值。
要点: Web Service 的统一资源标识(URI)由选择转为 Web Service 的工件的向导自动生成。缺省的基本 URI http://tempuri.org/
用来构造与实体没有任何唯一关联的 URI。主机名 tempuri 来自 WSDL 规范,并且代表临时 URI。当不想使 URI 全局唯一时,使用缺省的基本 URI。建议不要将
http://tempuri.org/ 用作稳定实体的基本 URI。
- “Web Service 代理”页列示了将生成代理代码的位置。客户机代理向 Web Service 提供远程过程调用接口。不要为生成的代理启用安全性。单击下一步。
- 使用“Web Service 客户机测试”页来选择下列选项:
- 选择生成“Web Service 样本 JSP”样本作为测试工具。
- 选择 JSP 所在的文件夹并确保所有方法都包括在 JSP 中。
- 选择在服务器上运行测试以自动为您启动服务器。
单击完成。
- 这就在 Web 浏览器中的以下 URL 启动了代理 JSP:http://localhost:9080/JMSClient/sample/TestEJB/TestClient.jsp。通过选择一种方法,为该方法输入一个值,然后单击调用,这样就可以使用此样本应用程序来测试 Web Service。该方法的结果(即,您在文本字段中输入的回送字符串)将显示在结果窗格中。