用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介
2009-11-05 00:00:00 来源:WEB开发网清单 1. 使用 JAX-RPC ServiceFactory 获得 JAX-RPC 服务 String wsdlURL = http://localhost:6080/HelloWebService/services/Hello?wsdl";
String namespace = "http://Hello.com";
String serviceName = "HelloWebService";
QName serviceQN = new QName(namespace, serviceName);
ServiceFactory serviceFactory = ServiceFactory.newInstance();
/* The "new URL(wsdlURL)" parameter is optional */
Service service = serviceFactory.createService(new URL(wsdlURL), serviceQN);
由特定于厂商的 JAX-RPC ServiceFactory 可供选择。如果您想要利用某个厂商的存根,使用这些 JAX-RPC ServiceFactory 通常是非常容易的(客户机代码编写起来很简单)。然而,这样的扩展不是标准的,将很可能在其他厂商的 J2EE 实现上不起作用。
JNDI 查找
JSR 109:“JNDI 查找是在 J2EE 环境中查找 Web 服务的标准方式。”
JNDI 服务查找
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中进行了举例说明:
更多精彩
赞助商链接