用 Java 客户机调用 Web 服务: J2SE 和 J2EE 环境中 Web 服务客户机简介
2009-11-05 00:00:00 来源:WEB开发网动态调用接口(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);
更多精彩
赞助商链接