先决条件:
- 创建 EJB 项目并将它添加至新的 EAR 项目。此项目将用来保存所生成的框架 EJB bean。
- 如果要使用基于 HTTP 的 SOAP 作为传输方法,则创建空的 Web 项目来充当路由器项目;如果要使用基于 JMS 的 SOAP 作为传输方法,则创建 EJB 项目来充当路由器项目。必须将您创建的项目与将包含企业 bean 的 EJB 项目添加至同一 EAR。
- 发现 WSDL 文档并将它导入 Web 项目中。只能使用包含 service 元素的 WSDL 文件。
- 如果想要使用基于 JMS 的 SOAP,则必须为 JMS 创建服务器和服务器配置,如为基于 JMS 的 SOAP 创建服务器和服务器配置中所述。
- 因为启动 WebSphere Application Server 可能要花费几分钟时间(这取决于计算机的速度),所以强烈建议您在运行 Web Service 向导之前启动它。要启动服务器,在“服务器”视图(窗口 > 显示视图 > 服务器)中选择它,单击鼠标右键,然后单击启动。
Web Service 向导帮助您从现有的 WSDL 文档创建框架 EJB。框架 EJB 包含与 WSDL 文档中描述的操作相对应的一组方法。创建 EJB 时,每个方法都具有一种基本实现,该实现可以很容易被通过编辑该 bean 来取代。
要了解有关 EJB 应用程序开发的更多信息,请参阅 EJB 工具。
要从 WSDL 文档创建框架 EJB:
- 切换至 J2EE 透视图(窗口 > 打开透视图 >
J2EE)。
- 在“项目资源管理器”视图中,选择要创建框架 EJB Web Service 的 Web 项目。
- 单击文件 > 新建 > 其它。选择 Web Service 以显示各种 Web Service 向导。选择 Web Service 向导。单击下一步。
- “Web Service”页面:从 Web Service 类型下拉列表中选择框架 EJB Web Service。(可选)可以选择执行下列操作:
- 启动 Web 项目中的 Web Service - 如果不选择此选项,则将必须手工启动
Web Service。必须选择此选项才能启用此页面上的其它选项。
- 启动“Web Service 资源管理器”以将 Web Service 发布到 UDDI 注册中心。
- 为 Web Service 生成 Java™ bean 客户机代理。生成的 Java bean 客户机代理提供了 Web Service 的远程过程调用接口。
- 测试 Web Service - 这允许您在生成代理之前在“Web Service 资源管理器”中测试 Web Service。
- 通过“TCP/IP 监视器”来发送 Web Service 通信量,“TCP/IP 监视器”允许您监测由 Web Service 生成的 SOAP 流量,还可以测试此流量以保持 WS-I 一致性。
- “对象选择”页面:输入将用来生成 EJB bean 的 WSDL、WSIL 或 HTML 文件的 URI。也可以选择从此文件生成 WSIL 文件。 确保在 URI 开头没有空格,否则可能会生成空指针异常。
- “服务部署配置”页面:指定服务器和客户机部署设置。
- 单击编辑并选择 IBM® WebSphere® 运行时环境,然后选择想要运行 Web Service 和 Web Service 客户机的服务器。 WebSphere 运行时环境是此类型的 Web Service 唯一支持的运行时环境。
- 为 Web Service 选择服务项目和 EAR。 如果它们尚不存在,则向导将为您创建它们。
- 选择想要创建 Web Service 客户机的项目的类型和名称。如果输入现有项目的名称,则项目类型字段必须与现有项目的项目类型字段相匹配。如果输入一个尚不存在的项目的名称,则向导将为您创建该项目。注意,Axis 和 SOAP 运行时客户机支持的唯一项目类型是 Web 项目。如果想要在 Java、EJB 或应用程序客户机项目中创建客户机,则必须为客户机选择 WebSphere 运行时环境。
- 选择现有 EAR 或输入一个唯一名称以使 Web Service 客户机与 Web Service EAR 以外的另一 EAR 相关联。注意:对 Web Service 和 Web Service 客户机选择不同的 EAR 可以减少遇到运行时错误的机会,但是将使用较多系统资源。
- “Web Service 框架 EJB 配置”页面:此页面显示正在生成的 WSDL 文件的名称。为 Web Service 的服务器端选择“路由器”项目(该项目必须是预先存在的 EJB 项目)和安全性设置。如果您的工作空间中已经具有 SEI,则可以选择使用它;否则向导可以为您生成一个 SEI。如果要使用基于 JMS 的 SOAP 作为传输方法,则 JMS URI 属性中的大多数信息应该是已经预先填充了。您可能必须手工输入“侦听器”端口名。
- “Web Service 名称空间至包映射”页面:如果在前一面板上选择了定义名称空间至包的定制映射,则可以在此面板上通过单击添加来输入定制映射对。或者,可以单击导入以从 .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 工具来将一个 JNDI 名称指定给 EJB 可避免此问题。