WEB开发网
开发学院软件开发Java 用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境... 阅读

用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 动态调用接口(DII)JAX-RPC Call 接口支持动态调用 Web 服务的操作,使用这种方法,用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介(8),您不需要知道开发时的 WSDL URL,JAX-RPC Service 用作实例化 JAX-

动态调用接口(DII)


JAX-RPC Call 接口支持动态调用 Web 服务的操作。使用这种方法,您不需要知道开发时的 WSDL URL。JAX-RPC Service 用作实例化 JAX-RPC Call 的工厂,而不是从 JAX-RPC Service 中获得代理。此方法的步骤如下:

获取一个 JAX-RPC Service 。

使用 JAX-RPC Service 的 createCall() 方法实例化 JAX-RPC Call 。

使用它的 setter 方法来配置您的 Call 实例。

使用 JAX-RPC Call 的调用方法来调用 Web 服务的操作。

在步骤1中,对于受管客户机,仅仅通过把 Web 服务(而非 WSDL URL)的名称传送到 createService() 方法来从 JAX-RPC ServiceFactory 中获取 JAX-RPC Service 。对于 J2EE 容器管理的客户机,您通过 JNDI 查找来获取 JAX-RPC Service 。在步骤3中,配置参数为:操作的名称、端口号、目标服务端点的地址、返回类型。查阅 JAX-RPC 规范的8.2.4.2节可以获得标准的特性集的信息。步骤2到4示于 清单6中。

清单 6. 使用 DII 方法调用 Web 服务
String namespace = "http://Hello.com"; 
String portName = "Hello"; 
QName portQN = new QName(namespace, portName); 
String operationName = "getGreeting"; 
Call call = service.createCall(); 
call.setPortTypeName(portQN); 
call.setOperationName(new QName(namespace, operationName)); 
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, ""); 
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "wrapped"); 
call.addParameter("param1", <xsd:string>,ParameterMode.IN); 
call.setReturnType(<xsd:string>); 
Object[] inParams = new Object[] {"Jane"}; 
String ret = (String) call.invoke(inParams); 

上一页  3 4 5 6 7 8 9  下一页

Tags:Java 客户机 调用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接