日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebService系列之使用Axis获取天气预报数据

發布時間:2024/8/26 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebService系列之使用Axis获取天气预报数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試工具下載soapui測試

http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

pom配置:

<properties> <!-- axis --><axis.version>1.4</axis.version><!-- commons-iscovery--><commons-discovery.version>0.2</commons-discovery.version><!-- wsdl4j --><wsdl4j.version>1.6.3</wsdl4j.version><!-- slf4j --><slf4j.version>1.7.29</slf4j.version><!-- fastjson --><fastjson.version>1.1.40</fastjson.version> <dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi.version}</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency><dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>${axis.version}</version></dependency><dependency><groupId>org.apache.axis</groupId><artifactId>axis-saaj</artifactId><version>${axis.version}</version><scope>compile</scope></dependency><dependency><groupId>org.apache.axis</groupId><artifactId>axis-jaxrpc</artifactId><version>${axis.version}</version><scope>compile</scope></dependency><dependency><groupId>commons-discovery</groupId><artifactId>commons-discovery</artifactId><version>${commons-discovery.version}</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>${wsdl4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency> package com.example.common.util.webservice.axis;import org.apache.axis.Constants; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.types.Schema; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class WebServiceClientUtils {private static final Logger log = LoggerFactory.getLogger(WebServiceClientUtils.class); private static final Integer CONNET_TIME_OUT = 8000;public static void call(String point, String nameSpace, String methodName, Map<String, String> paramMap)throws Exception {// 創建call實例log.info("wsdl鏈接:{},命名空間:{},方法名:{}" , point , nameSpace , methodName);Call call = null;try {call = (Call) new Service().createCall();} catch (Throwable e) {log.error("new call失敗",e);}call.setTargetEndpointAddress(point);call.setOperationName(new QName(nameSpace, methodName));call.setUseSOAPAction(true);call.setSOAPActionURI(nameSpace + methodName);// 調用超時時間call.setTimeout(CONNET_TIME_OUT);// 存放入參數List<Object> paramValues = new ArrayList<Object>();if (paramMap != null && paramMap.size() > 0) {for (Map.Entry<String, String> param : paramMap.entrySet()) {call.addParameter(new QName(nameSpace, param.getKey()), Constants.XSD_STRING, ParameterMode.IN);paramValues.add(param.getValue());if (log.isInfoEnabled()) {log.info("webService參數封裝,參數:{},值為{}" , param.getKey(), param.getValue());}}}// 設置返回參數類型//call.setReturnType(Constants.XSD_STRING);//call.setReturnType(XMLType.SOAP_DOCUMENT);//call.setReturnType(XMLType.XSD_SCHEMA);call.setReturnClass(java.lang.String[].class);// 調用WebService服務if (log.isInfoEnabled()) {log.info("開始調用webService");}long start = System.currentTimeMillis();String[] res = (String[]) call.invoke(paramValues.toArray());long end = System.currentTimeMillis();if (log.isInfoEnabled()) {log.info("調用webService ;耗時:{}", (end - start) + "ms");}// WebService參數返回//String result = object.toString();for (int i = 0; i < res.length; i++) {System.out.println(res[i]);if (log.isInfoEnabled()) {log.info("WebService參數返回:{}", res[i]);}}}public static void main(String[] args) throws Exception {String point = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";String nameSpace = "http://WebXml.com.cn/";String methodName = "getWeather";String theCityCode = "北京";String theUserID = "";Map<String, String> paramMap = new HashMap<String, String>(2);paramMap.put("theCityCode", theCityCode);paramMap.put("theUserID", theUserID);call(point, nameSpace, methodName, paramMap);} }

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的WebService系列之使用Axis获取天气预报数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。