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

关于此任务
- 基于 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 模式类型之间的映射。
- 受管客户机
过程
结果
您已创建并测试 Web Service 客户机应用程序。
下一步做什么
开发 Web Service 应用程序客户机并且静态地绑定客户机后,实现使用的服务端点是您在开发流程中使用的 WSDL 文件中识别的那个端点。安装 Web Service 应用程序期间或者在安装后,您可能要更改服务端点。对于受管客户机,可以使用管理控制台或者 wsadmin 脚本编制工具更改端点。
您还可以考虑通过实现 Web Service 客户机的扩展来定制 Web Service。这些扩展的一些示例包括在 SOAP 头中发送和接收值、发送和接收 HTTP 或 JMS 传输头或使用定制绑定。要了解有关这些扩展的更多信息,请阅读有关“实现 Web Service 客户机扩展”的相关信息。