Web Service 向导帮助您从现有的 WSDL 文档创建框架 EJB。框架 EJB 包含与 WSDL 文档中描述的操作相对应的一组方法。创建 EJB
时,每个方法都具有一种基本实现,可通过编辑该 bean 来取代该实现。
先决条件:
- 创建 EJB 项目并将它添加至新的 EAR 项目。此项目将用来保存所生成的框架 EJB bean。
- 如果要使用 SOAP over HTTP 作为传输方法,则创建空的 Web 项目来充当路由器项目;如果要使用 SOAP over JMS 作为传输方法,则创建 EJB 项目来充当路由器项目。必须将创建的项目与将包含企业 bean 的 EJB 项目添加至同一 EAR。有关路由器模块的更多信息,请参阅创建路由器模块。
- 发现 WSDL 文档并将它导入 Web 项目中。只能使用包含 service 元素的 WSDL 文件。
- 如果想要使用 SOAP over JMS,则必须为 JMS 创建服务器和服务器配置,如为 SOAP over JMS 创建服务器和服务器配置中所述。
- 根据计算机速度的不同,启动 WebSphere® Application Server 可能要花几分钟时间,因此强烈建议在运行 Web Service 向导之前将它启动。要启动服务器,在“服务器”视图(窗口 > 显示视图 > 服务器)中选择它,右键单击并单击启动。
- 有关 EJB 应用程序开发的更多信息,请参阅信息中心中的『开发企业应用程序』。
要从 WSDL 文档创建 Web Service 和框架 EJB:
- 切换至 J2EE 透视图(窗口 > 打开透视图 > J2EE)。
- 在“项目资源管理器”视图中,选择要创建框架 EJB Web Service 的 Web 项目。
- 单击文件 > 新建 > 其他。选择 Web Service 以显示各种 Web Service 向导。选择 Web Service 向导。单击下一步。
- Web Service 页面:从 Web Service 类型下拉列表中选择自顶向下的 EJB Web Service。输入将用来生成 EJB bean 的 WSDL、WSIL 或 HTML 文件的 URI。确保在 URI 开头没有空格,否则可能会生成空指针异常。您还可以执行下列操作:
- 选择您想使用滑块来完成的 Web Service 开发阶段:
- 开发:这将生成 Web Service 的 WSDL 定义和实现。此阶段包括诸如以下任务:创建一些模块,这些模块将包含适当的生成的代码、WSDL 文件、部署描述符和 Java™ 文件。
- 装配:在目标应用程序服务器需要的情况下,此阶段确保将主管 Web Service 或客户机的项目与 EAR 相关联。将在此阶段创建路由器模块。
- 部署:此阶段将为 Web Service 创建部署代码。
- 安装:此阶段将在目标服务器上安装和配置 Web 模块和 EAR。如果需要对 WSDL 文件的端点进行任何更改,则将在此阶段中进行这些更改。
- 启动:一旦在服务器上安装了 Web Service,此阶段就会启动服务器。
- 测试:此阶段将提供各种选项来测试服务,例如,使用“Web Service 资源管理器”或样本 JSP 来测试服务。
- 选择服务器:将显示缺省服务器。如果您想将服务部署到另一服务器上,则单击链接以指定另一服务器。
- 选择运行时环境:将显示缺省运行时环境。如果您想将服务部署到另一运行时环境,则单击链接以指定另一运行时。
- 选择服务项目:将显示一个项目,它包含在工作空间中所选择的项目。要选择另一个项目和 EAR,单击项目链接。 确保选择作为“客户机 Web 项目”的项目与“服务 Web 项目”不同,否则,服务将被客户机生成的工件覆盖。
- 如果想要创建客户机,则选择要生成的代理类型,然后对该客户机重复执行上述步骤。
- 发布 Web Service:这将启动“Web Service 资源管理器”以将 Web Service 发布至 UDDI 注册中心。 注意,只能使用“Web Service 资源管理器”来测试使用 HTTP 传输的 Web Service。
- 监视 Web Service:这将通过“TCP/IP 监视器”来发送 Web Service 流量,“TCP/IP 监视器”可以监测由 Web Service 生成的 SOAP 流量,还可以测试此流量以保持 WS-I 一致性。还可以手工设置 TCP/IP 监视器,如使用 TCP/IP 监视器来测试 Web Service 中所述。 注意,您只能监视使用 HTTP 传输的 Web Service。
- “Web Service 框架 EJB 配置”页面:
- 选择您是想使用 HTTP 还是 JMS 绑定,并选择路由器项目。
- (可选)还可以对 Web Service 的服务器端启用安全性。
- 添加远程客户机视图:从 EJB 2.1 规范开始,无状态会话 bean 可以包括 Web Service 客户机视图以及本地视图和远程视图。Web Service 客户机视图包括一个服务端点接口。
- 定义名称空间至包的定制映射:允许您输入定制映射对
- “Web Service 名称空间至包映射”页面:Web Service 向导从指定 WSDL 生成许多 Java 文件。缺省情况下,它将根据
WSDL 文件中指定的名称空间创建包名。要覆盖此缺省行为,可以为 WSDL 文件中部分或全部名称空间指定您自己的包名。如果在前一面板上选择了定义名称空间至包的定制映射,则可以在此面板上通过单击添加来输入定制映射对。或者,可以单击导入以从 .properties 文件中导入定制映射对。属性文件的内容必须采用 namespace=package 格式。
- “Web Service 测试”页面:如果想要在“Web Service 资源管理器”中测试 Web Service,则单击启动。选择想要测试的操作,输入必需的信息并单击执行。结果将显示在“状态”窗格中。
- “Web Service 代理”页面:选择是否想生成代理并选择是否对此代理启用安全性。可以选择输入定制的名称空间至包映射。
- “Web Service 客户机名称空间至包映射”页面:如果在前一面板上选择了定义名称空间至包的定制映射,则可以在此面板上通过单击添加来输入定制映射对。或者,可以单击导入以从 .properties 文件中导入定制映射对。属性文件的内容必须采用 namespace=package 格式。
- “Web Service 客户机测试”页面:使用此页面来选择下列选项:
- 选择测试工具。可以在“通用测试客户机”或者“Web Service 资源管理器”中测试生成的代理,也可以生成样本 Web Service JSP。
- 如果选择通过 JSP 来测试代理,则可以选择 JSP 所在的文件夹,并且可以选择将包括在 JSP 中的方法。
- “Web Service 发布”页面:选择是否想将此 Web Service 发布至 UDDI 注册中心。单击完成。
创建 Web Service 之后,根据您选择的选项不同,可能会发生下列情况:
- 如果选择了使用 Web Service 样本 JSP 来测试生成的代理,则会在 Web 浏览器中的以下 URL 处启动代理:http://localhost: port/ WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp。通过选择一种方法,为该方法输入一个值,然后单击调用,这样就可以使用此样本应用程序来测试 Web Service 了。该方法的结果将显示在结果窗格中。
- 如果选择了使用通用测试客户机来测试生成的代理,则将在浏览器窗口中的以下 URL 处启动该代理:http://localhost:9080/UTC/preload?object= BeanPackage. BeanServiceProxy。在“引用”窗格中的“对象引用”下面,展开代理存根以显示
Web Service 的方法。单击想要测试的方法,在“参数”窗格中输入值并单击调用。将在下面生成结果。
- 如果选择了使用“Web Service 资源管理器”来测试 Web Service,则“Web Service 资源管理器”将打开。选择想要测试的操作,输入必需的信息并单击执行。结果将显示在“状态”窗格中。
- 如果选择了发布 Web Service,则会启动“Web Service 资源管理器”,它将显示把
Web Service 发布到“IBM® UDDI 测试注册中心”所必需的页面。遵循发布 Web Service 中的指示信息来完成此任务。
有关 EJB 的更多信息,请参阅 EJB 应用程序开发文档。
要点:当从
WSDL 文件创建框架 EJB 时,不会为新创建的 EJB 生成 JNDI 名称。当在“单元测试环境”中运行此 EJB 时,会在控制台中显示代码为 WSVR0038I 的警告,指出“找不到 EJB 的 JNDI 名称,将使用基于 home 接口的缺省绑定名称”。此错误不会影响 Web Service。使用
J2EE 工具来指定 EJB 的 JNDI 名称以避免此问题。