package cn.com.countrygarden.bi.main.util;
/**
 * 调用webService封装方式
 */

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

import javax.xml.rpc.ParameterMode;

/**
 * axis方式调用webservice接口工具类
 */
public class AxisUtils {

    /**
     * 获取webservice对应方法数据
     * @param serviceUrl    wsdl地址
     * @param methodName    方法名
     * @param args          参数数据
     * @return
     */
    public static String callService(String serviceUrl, String methodName, Object [] args)  {
        // 创建一个服务(service)调用(call)
        String ret= "";
        try {
            Service service = new Service();
            // 通过service创建call对象
            Call call = (Call) service.createCall();
            // 设置service所在URL
            call.setTargetEndpointAddress(
                    new java.net.URL(serviceUrl));
            for (int i = 0; i < args.length; i++) {
                call.addParameter("arg" + i, XMLType.XSD_STRING, ParameterMode.IN);
            }
            call.setOperationName(methodName); // 设置访问的方法名
            ret =  call.invoke(args).toString();  // Object 数组封装了传递的参数
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ret;
    }

}