用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介
2009-11-05 00:00:00 来源:WEB开发网JAX-RPC 1.1 和 JSR 109 是 J2EE 1.4 的组成部分。
服务查找
有两种客户机,它们在代码的编写、打包和调用的方式上都不相同:
非受管客户机
J2EE 容器管理的客户机
这里,非受管意指不是 J2EE 容器管理的。这些客户机是 Java 2 Standard Edition(J2SE)客户机,它们是通过简单的 java 命令进行调用的。对于非受管客户机,服务查找是通过 JAX-RPC ServiceFactory 进行的,JAX-RPC ServiceFactory 是创建服务访问点的工厂。对于 J2EE 容器管理的客户机,服务查找是通过 JNDI 查找进行的。
ServiceFactory
JSR 101:“JAX-RPC ServiceFactory 是在 J2SE 环境中查找 Web 服务的标准方式。”
JAX-RPC ServiceFactory
JAX-RPC ServiceFactory 是一个抽象类,用作实例化 JAX-RPC Service 的工厂。它是厂商无关的,使您能够编写可移植代码。 ServiceFactory 是实例化的,可以如下进行使用: javax.xml.rpc.Service service = ServiceFactory.newInstance().createService(...);
您需要将 Web 服务的全限定名(也就是名称空间加上服务名称)传送到 createService() 方法和(可选)描述您想要查找的 Web 服务的 WSDL URL。步骤如下:
(可选)指定 WSDL URL。
指定 Web 服务的全限定名。
调用 ServiceFactory 的 createService() 方法。
然后可以使用获得的服务接口(Service Interface)来获取存根、动态代理、或 DII Call 对象,如“ 服务访问”部分所述。在该部分中,同时还描述了动态调用接口(Dynamic Invocation Interface,DII)。使用这种方法,您不需要知道您想要调用的 Web 服务的 WSDL URL,您只需要指定 createService() 方法中的服务名称参数。 清单1展示了如何使用 ServiceFactory 实现 JAX-RPC Service 。 QName 是一个 javax.xml.namespace.QName 。
更多精彩
赞助商链接