java调用.net的webService接口

Java调用WebService2

import org.apache.axis.client.Call;
import javax.xml.namespace.QName;
import java.util.*;

/**

  • @author :xzr

  • @version :1.0.0

  • @date :2020/3/23

  • @description :WebService
    /
    public class WebServiceUtils {
    /
    *

    • webService链接地址
      */
      static String url = “http://172.20.32.132:8696/WebService_IIS.asmx”;

    /**

    • 域名,这是在server定义的–不知道的可以问接口提供方,他们一并提供这个
      */
      static String soapaction = “http://tempuri.org/”;

    /**

    • 获取WebService数据
      */
      public static String getData(String methodName, Map params) throws Exception {
      org.apache.axis.client.Service service = new org.apache.axis.client.Service();
      Call call = (Call) service.createCall();
      call.setTargetEndpointAddress(url);
      String websrvmethod = methodName;
      // 设置要调用哪个方法
      call.setOperationName(new QName(soapaction, websrvmethod));

      // 用于存储参数的集合
      ArrayList myValues = new ArrayList<>();
      // 设置要传递的参数名
      params.forEach((key, value) -> {
      call.addParameter(new QName(soapaction, key), org.apache.axis.encoding.XMLType.XSD_STRING,
      javax.xml.rpc.ParameterMode.IN);
      // 将map参数存入集合 call.invoke请求需使用
      myValues.add(value);
      });

      call.setReturnType(new QName(soapaction, websrvmethod), String.class);
      // 要返回的数据类型(自定义类型,我这边接口提供方给我返回的是json字符串,所以我用string类型接收。这个地方一定要设置好,不然各种报错很崩溃)
      call.setUseSOAPAction(true);
      call.setSOAPActionURI(soapaction + websrvmethod);
      // 调用方法并传递参数-传递的参数和设置的参数要对应,顺序不能搞错了
      String data = (String) call.invoke(myValues.toArray(new String[params.size()]));
      return data;
      }

    public static void main(String[] args) throws Exception {
    HashMap params = new HashMap<>();
    params.put(“p_brand_id”,“jsw”);
    params.put(“p_year_id”,“2016”);
    params.put(“p_sea_id”,“62”);
    String v = WebServiceUtils.getData(“WmsSrv_Qry_ItemInfo”,params);

     System.out.println(v);
    

/* JSONArray json = JSONArray.fromObject(v);
List list = (List) JSONArray.toCollection(json, WmsIteminfo.class);
list.forEach(System.out::println);
System.out.println(list.size());*/
}
}

你可能感兴趣的:(java基础)