axis2调用webservice

	public static long TIMEOUTINMILLISECONDS=100000;
	/**
	 * 调用webservice
	 * @param url webserviceURL
	 * @param methodName 调用方法名
	 * @param namespace 命名空间
	 * @param params 参数
	 * @param returnTypes 返回参数类型
	 * @return
	 * @throws AxisFault
	 */
	public static <T> Object[] invokeMethod(String url,String methodName,String namespace,Object[] params,Class<T>[] returnTypes) throws AxisFault{
		RPCServiceClient client=new RPCServiceClient();
		Options options=client.getOptions();
		EndpointReference epr=new EndpointReference(url);
		options.setTo(epr);
		options.setTimeOutInMilliSeconds(TIMEOUTINMILLISECONDS);
		QName qName=new QName(namespace, methodName);
		Object[] results=client.invokeBlocking(qName, params, returnTypes);
		return results;
	}

 调用方法

1、传递单个参数

Object[] objs = invokeMethod("http://localhost:8080/axis2/services/MobileWs", "getArrayTest", "http://ws.apache.org/axis2", new Object[] {"zhangsan"}, new Class[]{String.class});

 2、传递数组

Object[] objs = invokeMethod("http://localhost:8080/axis2/services/MobileWs", "getArrayTest", "http://ws.apache.org/axis2", new Object[] {new String[]{"zhangsan","lisi"}}, new Class[]{String.class});

 

posted @ 2014-02-24 10:45  Paul.Lau  阅读(1305)  评论(0编辑  收藏  举报