实现 JAX-RPC Web Service 客户机

可以根据 Web Services for Java™ Platform, Enterprise Edition (Java EE) 规范和 Java API for XML-based RPC (JAX-RPC) 编程模型开发 Web Service 客户机。

开始之前

最佳实践 最佳实践: IBM® WebSphere® Application Server 支持 Java API for XML-Based Web Services (JAX-WS) 编程模型以及 Java API for XML-based RPC (JAX-RPC) 编程模型。JAX-WS 是下一代 Web Service 编程模型,用于扩展 JAX-RPC 编程模型所提供的基础。使用策略 JAX-WS 编程模型,借助基于标准的注释模型的支持,简化了 Web Service 和客户机的开发。虽然仍支持 JAX-RPC 编程模型和应用程序,但应该利用易于实现的 JAX-WS 编程模型来开发新的 Web Service 应用程序和客户机。bprac

关于此任务

基于 JAX-RPC 编程模型开发 Web Service 客户机

Web Service 客户机编程模型提供了有关在 Java EE 环境中访问 Web Service 的准则。可以根据 Web Services for Java Platform, Enterprise Edition (Java EE) 规范和 Java API for XML-based remote procedure call (JAX-RPC) 规范开发 Web Service 客户机。应用程序服务器支持 Enterprise JavaBeans (EJB) 客户机、Java EE 应用程序客户机、JavaServer Pages (JSP) 文件和基于 JAX-RPC 编程模型的 servlet。

受管和非受管 JAX-RPC Web Service 客户机

在使用 JAX-RPC 编程模型时,应用程序服务器支持受管和非受管 Web Service 客户机:

  • 受管客户机

    Web Service for Java EE 客户机由 Java 规范要求 (JSR) 109 定义并且由于在 Java EE 容器中运行,所以是受管客户机。这些客户机打包为企业归档 (EAR) 文件并且包含充当服务请求者的组件。这些组件由 Java EE 客户机应用程序、Web 组件(例如 servlet 或 JavaServer Pages (JSP))或会话 Enterprise JavaBeans (EJB) 组成。Web Service 受管客户机使用 JSR 109 API 和部署信息来查找和调用 Web Service。

    对于受管客户机,通过 Java 命名和目录接口 (JNDI) 查询执行服务查询。请阅读“设置用户名令牌 Web Service 安全性、数字签名 Web Service 安全性以及轻量级第三方认证 (LTPA) 令牌 Web Service 安全性”。以下代码是符合 JSR 109 的上下文查询的示例:

    InitialContext ctx = new InitialContext();
        FredsBankServiceLocator locator
    =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService");
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance();  

    对受管客户机的上下文查询进行实例化时,不要将 new() 方法用于服务定位器。以下是不遵从 JSR 109 的示例 (new ServiceLocator):

    Properties prop = new Properties();
        InitialContext ctx = new InitialContext(prop);
        FredsBankServiceLocator locator = new FredsBankServiceLocator();
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance(); 

    如果没有 lookup() 调用,那么客户机无法访问该部署描述符。对于 JAX-RPC Web Service,Web Service 安全性配置位于 Web Service 部署描述符中。

  • 非受管客户机

    使用 JAX-RPC 运行时环境来调用 Web Service 并且不在任何 Java EE 容器中运行的 Java Platform, Standard Edition (Java SE 6) 客户机称为非受管客户机。 Web Service 非受管客户机是独立的 Java 客户机,它可以直接检查 WSDL 文件并通过直接使用 JAX-RPC API 制定对 Web Service 的调用。这些客户机打包为不包含任何部署信息的 JAR 文件。

    对于充当 Web Service 客户机的 Java 应用程序,必须存在 WSDL 文件和 Java 应用程序之间的映射。对于 JAX-RPC Web Service,映射由 JAX-RPC 规范定义。通过在 WSDL 文件中指定组件接口和绑定信息以及设计应用程序服务器基础结构以接受服务请求,您可以使用 Java 组件来实现 Web Service。此整个过程基于 Web Services for Java EE 规范。JAX-RPC 规范定义 WSDL 文件、Java 代码和 XML 模式类型之间的映射。

过程

  1. 获取您要访问的 Web Service 的 Web 服务描述语言 (WSDL) 文档。

    可以通过电子邮件从服务提供程序获取 WSDL,也可以通过统一资源定位符 (URL) 或者通过在统一描述、发现和集成 (UDDI) 注册中心中查找 WSDL。

  2. 使用 WSDL2Java 命令行工具根据 WSDL 文件开发客户机绑定 会生成调用 Web Service 所需的信息,包括服务端点接口和实现、生成的服务接口和 ibm-webservicesclient-bnd.xmi 以及 ibm-webservicesclient-ext.xmi 部署描述符。
  3. 完成客户机实现。 编写客户机应用程序代码以用于调用 Web Service。
    请参阅 JSR 109 规范的第 4 章。有关受支持的标准和规范的完整列表,请参阅 Web Service 规范和 API 文档。
    注: 如果应用程序在 JSR 109 客户机中创建许多线程,那么不会将元数据(包括 WebSphere Application Server 配置)复制到线程上,并且不会调用全局安全性处理程序。

    可以在可供下载的 WebServicesSamples 应用程序中查看基于 JAX-RPC 的 Web Service 样本和 GetQuote 客户机。要了解更多信息,请参阅 V8.0 样本信息。

  4. (可选)将 Web Service 启用的客户机 Java 归档 (JAR) 文件组装到企业归档 (EAR) 文件中 如果要开发在 Java EE 客户机容器中运行的受管 JAX-RPC Web Service 客户机,请完成此步骤。
  5. (可选)将启用了 Web Service 的客户机 Web 应用程序归档 (WAR) 文件组装到企业归档 (EAR) 文件 如果要开发在 Java EE 客户机容器中运行的受管 JAX-RPC Web Service 客户机,请完成此步骤。
  6. (可选)配置客户机部署描述符 如果要开发受管 JAX-RPC 客户机,请完成此步骤。
  7. (可选)配置 ibm-webservicesclient-bnd.xmi 部署描述符 如果要部署在 Java EE 客户机容器中运行的受管 JAX-RPC 客户机并且要覆盖缺省的客户机设置,请完成此步骤。 请参阅 ibm-webservicesclient-bnd.xmi 组装属性,以了解有关 ibm-webservicesclient-bnd.xmi 部署描述符的更多信息。
  8. (可选)部署 Web Service 客户机应用程序 完成此步骤以部署在 Java EE 客户机容器中运行的受管 JAX-RPC Web Service 客户机。
  9. 测试支持 Web Service 的客户机应用程序 可以测试非受管客户机 JAR 文件或受管客户机应用程序。

结果

您已创建并测试 Web Service 客户机应用程序。

下一步做什么

开发 Web Service 应用程序客户机并且静态地绑定客户机后,实现使用的服务端点是您在开发流程中使用的 WSDL 文件中识别的那个端点。安装 Web Service 应用程序期间或者在安装后,您可能要更改服务端点。对于受管客户机,可以使用管理控制台或者 wsadmin 脚本编制工具更改端点。

您还可以考虑通过实现 Web Service 客户机的扩展来定制 Web Service。这些扩展的一些示例包括在 SOAP 头中发送和接收值、发送和接收 HTTP 或 JMS 传输头或使用定制绑定。要了解有关这些扩展的更多信息,请阅读有关“实现 Web Service 客户机扩展”的相关信息。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_devwbsjaxrpcclient
文件名:twbs_devwbsjaxrpcclient.html