用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介
2009-11-05 00:00:00 来源:WEB开发网服务访问
在前面的部分中,您看到了 JAX-RPC ServiceFactory 用作 JAX-RPC Services 的工厂。同样地,JAX-RPC Service 也用作代理和存根的工厂。一旦您实例化了服务,就拥有了三种访问和调用 Web 服务的方法:
存根
动态代理
动态调用接口(Dynamic Invocation Interface,DII)
存根和动态代理方法使用服务端点接口(Service Endpoint Interface,SEI)。它基本上是 WSDL 端口类型元素中描述 Web 服务操作的 Java 表示。它是定义 Java 客户机用来与 Web 服务进行交互的方法的 Java 接口。SEI 是由从 WSDL 到 Java 的映射工具(比如 Apache Axis 的 Java2WSDL 或 IBM WSDK 的 WSDL2Client)生成的。
SEI
服务端点接口(Service Endpoint Interface,SEI)是 WSDL A is the Java representation of a WSDL port type.
存根
存根方法使用在从 WSDL 到 Java 映射阶段运行之前创建的特定于平台的存根。因为存根是在运行之前创建的,所以它有时称为 静态存根。它是一个实现 SEI 的 Java 类。从 WSDL 到 Java 的映射工具生成所需的客户端构件;该工具主要导入 WSDL 服务定义,然后创建相应的 Java 代码。构件包括 SEI、存根、(可选)Holder、序列化器、反序列化器和实用程序类。JAX-RPC 建议把存根的实例绑定到特定的协议和传输上,比如 SOAP 绑定存根。对于存根方法,需要执行的步骤如下:
获取一个 JAX-RPC 服务。
获得一个存根。
在该存根上调用 Web 服务的操作。
步骤2和3显示在 清单4中。请注意,使用 JAX-RPC Service 的 getPort 方法(在下一部分中进行描述)来获取存根也是有可能的。
清单 4. 通过存根访问 Web 服务 Hello myStub = (Hello) service.getHello();
System.out.println(myStub.getGreeting("Jane");
更多精彩
赞助商链接