用Java客户机调用Web服务: J2SE和J2EE环境中Web服务客户机简介 - 编程入门网
这些客户机是 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 。 清单 1. 使用 JAX-RPC ServiceFactory 获得 JAX-RPC 服务
由特定于厂商的 JAX-RPC ServiceFactory 可供选择。如果您想要利用某个厂商的存根,使用这些 JAX-RPC ServiceFactory 通常是非常容易的(客户机代码编写起来很简单)。然而,这样的扩展不是标准的,将很可能在其他厂商的 J2EE 实现上不起作用。 JNDI 查找 JSR 109:“JNDI 查找是在 J2EE 环境中查找 Web 服务的标准方式。” 用Java客户机调用Web服务: J2SE和J2EE环境中Web服务客户机简介(3)时间:2011-02-03 IBM Bertrand PortierJNDI 服务查找 J2EE 容器管理的客户机被打包成 Enterprise Archives(.EAR)文件,并且在 J2EE 容器中运行。除了 Java 代码之外,描述符也打包在该归档文件中。下面是几个不同类型的 J2EE 容器管理的客户机: 应用程序客户机容器客户机 Web 容器客户机:JavaBean 或 Servlet EJB 容器客户机:EJB JAX-RPC 定义了受管客户机的编程模型,而 JSR 109(“实现企业 Web 服务(Implementing Enterprise Web services)”)定义了 J2EE 容器受管的客户机的编程模型。JSR 109 的目标之一就是它的客户机编程模型遵循 JAX-RPC。然而,JSR 109 并没有推荐使用 JAX-RPC ServiceFactory 。相反,它建议客户机使用 Java 命名和目录接口(Java Naming and Directory Interface,JNDI)来获取服务接口(Service Interface)。这个过程包括下面两个步骤,同时在 清单2中进行了举例说明: 实例化本地 JNDI 上下文。 在此上下文中对 Web 服务进行 JNDI 查 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |