Web Service 向导会帮助您从现有 WSDL 文档创建框架 Bean。框架 bean 包含一组与 WSDL 文档中描述的操作相对应的方法。创建此 Bean 时,每个方法都具有基本实现,您可以通过编辑此 Bean 来替换该实现。
开始之前
先决条件:
- 如果您使用的是 WebSphere® Application Server,那么强烈建议您先启动该服务器再运行 Web Service 向导,这是因为根据您计算机的速度,启动 WebSphere Application Server 可能要花费几分钟时间。要启动该服务器,请在“服务器”视图(窗口 > 显示视图 > 服务器)中选择该服务器,单击鼠标右键并选择启动。
- 创建或发现 WSDL 文档,并将 WSDL 文档导入到项目中。
您可以使用包含服务元素的 WSDL 文件。
关于此任务
要使用 WebSphere JAX-WS 运行时环境从 WSDL 文档创建框架 Java™ Bean,请执行下列操作:
过程
- 切换至 Java EE 透视图(窗口 > 打开透视图 > Java EE)。
- 在“企业资源管理器”视图中,选择您已创建或导入的 WSDL 文件。
- 单击文件 > 新建 > 其他。选择 Web Service 以显示各种 Web Service 向导。选择 Web Service 向导。单击下一步。
- Web Service 页面:选择自顶向下 Java Bean Web Service 作为您的 Web Service 类型。还可以选择执行下列操作:
- 选择您要使用滑块完成的 Web Service 开发阶段。这将在其余向导面板上设置几个缺省值:
- 开发:这将开发 Web Service 的 WSDL 定义和实现。这包括诸如适当时创建将包含所生成代码、WSDL 文件、部署描述符和 Java 文件的模块之类的任务。
- 组装:当目标应用程序服务器要求主管 Web service 或客户机的项目与 EAR 相关联时,此阶段确保实现此目标。
- 部署:此阶段创建服务的部署代码。
- 安装:此阶段将在目标服务器上安装和配置 Web 模块和 EAR。如果需要对 WSDL 文件的端点进行任何更改,那么将在此阶段中进行这些更改。
- 启动:一旦在服务器上安装了 Web Service,此阶段就会启动服务器。
- 测试:这将提供用于测试服务的各种选项,例如使用通用服务客户机、Web Service 资源管理器或样本 JSP。
- 选择服务器运行时:将显示缺省服务器。如果要将服务部署到另一台服务器,请单击服务器链接并指定另一台服务器。
此任务支持以下服务器运行时环境:
- WebSphere Application
Server V7.0 或更高版本
- WebSphere Application
Server Liberty 概要文件 V8.5.5
- 选择 Web Service 运行时:将显示缺省运行时。要将服务部署到 IBM® WebSphere JAX-WS 运行时,请单击运行时链接,并在打开的窗口中选择该运行时。
- 选择服务项目和服务 EAR 项目:将显示在工作空间中所选择的项目。只有已启用 Java 5.0、Java 6.0 或 Java 7.0 构面的 Web 项目才受支持。要选择不同的项目和 EAR,请单击项目链接,或者输入一个名称并允许向导为您创建一个项目。 请确保选择的“客户机 Web 项目”与“服务 Web 项目”不同,否则生成的客户机工件将覆盖该服务。对于 JAX-WS Web Service,服务器和客户机项目可以共享同一个 EAR。
- 如果要创建客户机,请选择要生成的代理的类型并对客户机重复步骤 1 到步骤 4。 稍后,可以使用下面描述的步骤来创建客户机:使用 IBM WebSphere JAX-WS 运行时环境从 WSDL 文档生成 Web Service 客户机
- 监视 Web Service:这将发送 Web Service 流量并流经 TCP/IP 监视器,从而允许您监视 Web Service 生成的 SOAP 流量并测试此流量以检查 WS-I 一致性。或者,您可以按照使用 TCP/IP 监视器来测试 Web Service 中的描述手动设置 TCP/IP 监视器。
- WebSphere JAX-WS 自顶向下 Web Service 配置页面:
- 输出文件夹:输入将在其中生成 Java 框架的位置,或者接受缺省值。
- 目标软件包:输入所生成的 Java 的软件包名称,或者接受缺省值。
- 启用包装器样式:启用从 WSDL 至 Java 的包装器样式映射。对于实现文档/文字包装模式的 WSDL 文档,将在 XML 模式中声明根元素并将其用作消息流的操作包装器。请求和响应各自具有单独的包装程序元素定义。其名称与操作(包装程序元素)相同的元素将分裂,以便它的每一个内容元素都称为所生成的 Java 方法特征符的一个参数。
- 生成可序列化的 JAXB 类:在 WebSphere Application Server 和 WebSphere(r)
Application Server Liberty 概要文件 V8.5.5 中启用 Java 6 构面时,您可以选择生成用于实现 java.io.Serializable 的 JAXB 类。 未实现此接口的类不会将它们的状态序列化或反序列化。
- 启用 MTOM 支持:如果选中此复选框,那么将启用 SOAP 消息传输优化机制以优化二进制内容的传输。有关 MTOM 的更多信息,请阅读 MTOM 概述
- 要生成的 JAX-WS 代码的版本:WebSphere Application Server V7.0 支持 JAX-WS 2.0 或 2.1 兼容的代码。WebSphere Application Server V8.0、V8.5 和 WebSphere(r) Application Server Liberty 概要文件 V8.5.5 支持 JAX-WS 2.0、2.1 或 2.2 兼容的代码。
- 将 WSDL 复制到项目:选择此选项可将 WSDL 文件复制到服务项目中,否则将由运行时根据需要动态生成必需的 WSDL。如果计划稍后创建客户机或者发布其他用户的 WSDL,那么这是一个方便的选项。
- 生成可序列化的 JAXB 类:在 WebSphere Application Server 和 WebSphere(r) Application Server Liberty 概要文件 V8.5.5 中启用 Java 6 构面时,您可以选择生成用于实现 java.io.Serializable 的 JAXB 类。未实现此接口的类不会将它们的状态序列化或反序列化。
- 指定 JAX-WS 或 JAXB 绑定文件:如果已创建了 JAX-WS 或 JAXB 定制绑定文件,请选中此复选框以使用它们来创建此 Web Service。如果选中此复选框,那么向导的下一页将允许您浏览至定制绑定声明文件。
- 定制服务实现类名:如果您要更改缺省端口名称至服务实现类名映射,请选中此复选框。
- 生成模式库:允许您在模式库中生成模式代码。如果选择模式库,那么您可以在后面的页面中定制 XSD 文档或 XSD 文档组至项目之间的映射。
- 生成 Web Service 部署描述符:对于 JAX-WS Web Service,将由运行时动态生成部署信息;不再需要静态部署描述符。选中此复选框将生成它们。
- 允许供应商扩展:如果选中此复选框,那么会将 -extension 选项添加至 wsgen 或 wsimport 命令。
-extension 选项指定是否启用或接受 JAX-WS 规范未指定的功能的定制扩展。使用扩展可能会产生不可移植的应用程序或者不与其他实现互操作的应用程序。有关详细信息,请参阅 WebSphere Application Server 信息中心内的 JAX-WS应用程序的 wsgen 命令和 JAX-WS 应用程序的 wsimport 命令主题。
- 根据在前一页面上选择的选项,可能会提示您在以下页面上定制 Web Service 实现:
- 定制绑定声明页面:如果已选择指定 JAX-WS 或 JAXB 绑定文件,那么您可以在此页面上浏览这些文件。
- 服务实现配置页面:对于 WSDL 文件中定义的每一个端口,您可以输入服务实现类的名称,也可以接受缺省值。
- 模式项目配置页面:如果已选择生成模式库,请使用此页面来定制 XSD 文档与项目之间的映射。仅当所有模式依赖关系都位于不同的目标名称空间内时,此功能才起作用;否则,ObjectFactory.java 中将发生编译错误。
- 测试 Web Service 页面:如果已选择测试 Web Service,请选择用于所生成的 Web Service 的测试工具,然后单击启动。这将在 Web Service 资源管理器或通用服务客户机中打开该 Web Service。
选择您要测试的操作,输入必需的信息并单击执行。结果将显示在“状态”窗格中。单击下一步。
- WebSphere JAX-WS
Web Service 客户机配置页面:如果已选择生成客户机,那么您可以在此页面上为该客户机指定以下选项:
- 输出文件夹:这是将用于生成客户机代码的位置。
- 目标软件包:Web Service 客户机向导将生成一些 Java 文件。缺省情况下,将根据 WSDL 文件中指定的名称空间创建包名。要覆盖此缺省行为,您可以指定自己的包名。
- 生成可移植客户机:选中此复选框可将 Web Service 客户机代码从一台机器移至另一台机器,或者从 WebSphere Application Server 或 WebSphere Application Server Liberty 概要文件 V8.5.5 的一个实例移至另一个实例。
如果选择了此选项,那么会将 WSDL 文档及其依赖的所有 XML 模式和其他 WSDL 文档都复制到客户机项目的 WEB-INF/wsdl 下面,然后将指向此副本的 file:relativeURL 注入到 JAX-WS 服务类的静态初始化块中。
- 启用对所生成的客户机的异步调用:如果选择启用异步客户机,那么将为 Web Service 中的每一种方法创建两个额外的方法。这些方法是允许客户机异步工作的轮询和回调方法。
- 指定 JAX-WS 或 JAXB 绑定文件:如果已创建了 JAX-WS 或 JAXB 定制绑定文件,请选中此复选框以使用它们来创建 Web Service 客户机。如果选中此复选框,那么向导的下一页将允许您浏览至定制绑定声明文件。
- 定制客户机代理类名:如果您要更改缺省端口名称至服务实现类名映射,请选中此复选框。
- 定制绑定声明页面:如果已选择指定 JAX-WS 或 JAXB 绑定文件,那么您可以在此页面上浏览这些文件。
- 服务实现配置页面:代理生成配置页面:对于已定义的每一个端口,您可以输入代理类的名称,也可以接受缺省值。
- “Web Service 客户机测试”页面:
- 测试生成的代理:如果选中此选项,那么将在 Web 浏览器中启动样本客户机,这使您能够测试功能。
- 选择测试工具。您可以在通用服务客户机或 Web Service 资源管理器中测试所生成的代理,也可以生成并使用样本 JAX-WS 2.0 JSP。
- 文件夹:如果已选择通过 JSP 来测试代理,那么您可以选择该 JSP 所在的文件夹,并且可以选择该 JSP 中包括的方法。
- 方法:选择要显示的方法。如果选择启用异步调用,那么还将列示异步方法。
- 在服务器上运行测试:将自动为您启动服务器。
结果
创建 Web Service 之后,可能会发生以下情况,具体取决于您选择的选项:
- 实现 Bean 将在 Java 编辑器中打开。这包含可用于测试 Web Service 的基本功能的框架代码,或者您可以先实现 Web Service 的必需业务逻辑,然后再对其进行测试。
- 如果已选择使用 JAX-WS 2.0 JSP 来测试所生成的代理,那么将在 Web 浏览器中于以下 URL 处启动该代理:http://localhost:port/WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp。您可以通过选择一种方法,再输入该方法的值,然后单击调用来使用此样本应用程序测试 Web Service。
该方法的结果将显示在结果窗格中。由于这是一个具有基本方法实现的 Java bean 框架,因此将返回一个值 -3。
- 如果已选择使用通用测试客户机来测试所生成的代理,那么将在浏览器窗口中通过与以下类似的 URL 启动该通用测试客户机:http://localhost:port/UTC/preload?object=BeanPackage.BeanServiceProxy。
在“对象”下面,展开代理存根以显示 Web Service 的方法。单击您要测试的方法,在“参数”窗格中输入值并单击调用。这时将生成并显示结果。
- 如果已选择使用 Web Service 资源管理器来测试 Web Service,那么资源管理器将打开。选择您要测试的操作,输入必需的信息并单击执行。这时,结果将显示在“状态”窗格中。