首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

java经过axis2调用webservice工具类

2012-08-24 
java通过axis2调用webservice工具类package cn.rx.oamp.utilimport java.net.MalformedURLExceptionimpo

java通过axis2调用webservice工具类

package cn.rx.oamp.util;import java.net.MalformedURLException;import java.rmi.RemoteException;import java.util.Date;import javax.xml.namespace.QName;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.ser.ArrayDeserializerFactory;import org.apache.axis.encoding.ser.ArraySerializerFactory;import org.apache.axis.encoding.ser.Base64DeserializerFactory;import org.apache.axis.encoding.ser.Base64SerializerFactory;import org.apache.axis.utils.JavaUtils;import cn.rx.oamp.pagemodel.ProgramPag;public class CallWebServiceUtil {/** * 取得webservice操作 *  * @param message *            :传值数组 * @param method *            :webservice 方法名 * @param url *            :wsdl路径 * @param nameSpace *            :webservice命名空间 * @param parameter *            :webservice参数数组 * @return */public static Object getWebService(String[] message, String method,String url, String nameSpace, String[] parameter) {Service service = new Service();Object obj = null;Call call;try {// 创建连接call = (Call) service.createCall();// 设置webservice地址call.setTargetEndpointAddress(new java.net.URL(url));// 设置调用的方法名(包含方法所在的命名空间)call.setOperationName(new QName(nameSpace, method));// 设置调用时需要传入的参数(包含参数所属方法所对应的命名空间)call.addParameter(new QName(nameSpace, parameter[0]),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);call.addParameter(new QName(nameSpace, parameter[1]),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);call.setUseSOAPAction(true);// 设置返回参数类型call.setReturnType(org.apache.axis.Constants.XSD_STRING);// 设置操作方法完整路径(包含命名空间与方法名)call.setSOAPActionURI(nameSpace + method);// 执行调用过程并传入调用时所需参数obj = call.invoke(new Object[] { message[0], message[1] });} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}return obj;}}

??说明:此工具类支持基本数据类型传递的webservice调用复杂类型需要自己封装pojo,且此工具类需要axis2jar包支持

热点排行