WebserviceUtil.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.yihu.jw.utils;
  2. import org.apache.axis.client.Call;
  3. import org.apache.axis.client.Service;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import javax.xml.namespace.QName;
  7. import java.util.Map;
  8. /**
  9. * Created by hzp on 2017/7/31.
  10. * webservice调用服务
  11. **/
  12. public class WebserviceUtil {
  13. private static Logger logger = LoggerFactory.getLogger(WebserviceUtil.class);
  14. /**
  15. * webservice 调用接口
  16. */
  17. public static String post(String urlString,String namespace,String api, Map<String,String> params) throws Exception {
  18. try {
  19. logger.info("ca_url:"+urlString);
  20. logger.info("ca_namespace:"+namespace);
  21. logger.info("api:"+api);
  22. Service service = new Service();
  23. logger.info("=======>通过service创建call对象");
  24. Call call = (Call) service.createCall();// 通过service创建call对象
  25. logger.info("=======>设置service所在URL");
  26. // 设置service所在URL
  27. call.setTargetEndpointAddress(new java.net.URL(urlString));
  28. call.setOperationName(new QName(namespace, api));
  29. call.setUseSOAPAction(true);
  30. Object[] objs = null;
  31. logger.info("=======>组装参数:"+params.size());
  32. if(params!=null && params.size()>0)
  33. {
  34. logger.info("=======>遍历参数");
  35. objs = new Object[params.size()];
  36. int i=0;
  37. for(String key : params.keySet())
  38. {
  39. logger.info("=======>参数key:"+key);
  40. logger.info("=======>接口参数:"+key);
  41. call.addParameter(new QName(key), org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数
  42. logger.info("=======>参数值:"+params.get(key));
  43. objs[i] = params.get(key);
  44. i++;
  45. }
  46. }
  47. logger.info("=======>设置返回类型");
  48. call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
  49. logger.info("=======>开始请求");
  50. String ret = (String)call.invoke(objs);
  51. logger.info("=======>请求结果:"+ret);
  52. logger.info("=======>请求结果.toString():"+ret.toString());
  53. return ret.toString();
  54. } catch (Exception e) {
  55. logger.info("=======>CA请求报错:"+e.getMessage());
  56. e.printStackTrace();
  57. throw e;
  58. }
  59. }
  60. }