Axis2开发WebService客户端——RPC方式
2015-12-29 18:17
363 查看
package client;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
/**
* 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,
* 即<wsdl:definitions>元素的targetNamespace属性值,第二个参数指定方法名。
*/
/**
* invokeBlocking方法有三个参数
* 第一个参数的类型为QName对象,表示调用的WebService方法名;
* 第二个参数的类型为Object[], 表示调用的WebService方法的参数值;
* 第三个参数的类型为Class[],表示调用的WebService方法的返回值类型的Class对象。
*/
/**
* 注意: 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{};
* 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,
* 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。
*/
public class RPCClient {
public String client(String address, String qName, String methodName, Object[] opAddEntryArgs) {
String ret = null;
try {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(address);
Options options = serviceClient.getOptions();
options.setTo(targetEPR);
QName opAddEntry = new QName(qName, methodName);
Class[] classes = new Class[] { String.class };
ret = (String) serviceClient.invokeBlocking(opAddEntry,
opAddEntryArgs, classes)[0];
System.out.println(ret);
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
/**
* 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,
* 即<wsdl:definitions>元素的targetNamespace属性值,第二个参数指定方法名。
*/
/**
* invokeBlocking方法有三个参数
* 第一个参数的类型为QName对象,表示调用的WebService方法名;
* 第二个参数的类型为Object[], 表示调用的WebService方法的参数值;
* 第三个参数的类型为Class[],表示调用的WebService方法的返回值类型的Class对象。
*/
/**
* 注意: 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{};
* 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,
* 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。
*/
public class RPCClient {
public String client(String address, String qName, String methodName, Object[] opAddEntryArgs) {
String ret = null;
try {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(address);
Options options = serviceClient.getOptions();
options.setTo(targetEPR);
QName opAddEntry = new QName(qName, methodName);
Class[] classes = new Class[] { String.class };
ret = (String) serviceClient.invokeBlocking(opAddEntry,
opAddEntryArgs, classes)[0];
System.out.println(ret);
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}
相关文章推荐
- 关于ax+by=c的解x,y的min(|x|+|y|)值问题
- jquery删除表格行
- 纵论数据库安全审计产品的三代演进
- POJ 2524 Ubiquitous Religions(并查集)
- Java(.NET)经典排序算法之归并排序
- 2015年 行人检测总结1
- 在 iOS 9 中运行企业版应用
- hibernate 中createQuery与createSQLQuery两个用法
- Hibernate执行原生态sql语句
- hdoj 整数对 1271 (数列&暴力)
- 有关ssh隧道和代理
- 【概率】COGS 1487:麻球繁衍
- Android图片压缩批量上传
- 自己定义UITabBarController
- day①:文件操作
- javascript中each()方法的简单实现
- 修改vnc server
- js高级程序设计(四)变量、作用域和内存问题
- El表达式取map值
- Trac搭建