亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

webService工具類

張軍 6251 0

所有工具類

項目中調用了別的系統(tǒng)的webservice接口,調用成功之后發(fā)現(xiàn)wsdlLocation的地址是寫死的,不方便修改,所以需要實現(xiàn)地址,包括用戶名密碼的可配置。項目的框架是Spring,調用webservice使用的是CXF。

package zj.cxf.util;

import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.log4j.Logger;

/**
 * 
 * webService工具類
 * 
 * @version 1.00 (2014.09.15)
 * @author SHNKCS 張軍 {@link  <a target=_blank href="http://www.eyofj.com">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 * 
 */
public class CxfUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	private static Map<String, Client> MAP_CLIENTS = Collections.synchronizedMap(new HashMap<String, Client>());
	private static DynamicClientFactory DYNAMIC_CLIENT_FACTORY = null;
	private static final Logger logger = Logger.getLogger(CxfUtil.class);
	static {
		initInvoke();
	}

	/**
	 * 初使化調用
	 */
	private static void initInvoke() {
		if (DYNAMIC_CLIENT_FACTORY == null) {
			// DYNAMIC_CLIENT_FACTORY = JaxWsDynamicClientFactory.newInstance();
			DYNAMIC_CLIENT_FACTORY = DynamicClientFactory.newInstance();
		}
	}

	/**
	 * 創(chuàng)建webservice代理并且調用webservice
	 * 
	 * @param wsdlAddress
	 *            調用webservice地址
	 * @param method
	 *            調用遠程的方法名
	 * @param params
	 *            傳遞的參數(shù)
	 * @return
	 */
	public static Object[] invoke(String wsdlAddress, String method, Object[] params) throws Exception {
		Client client = (Client) MAP_CLIENTS.get(wsdlAddress);
		if (client == null) {
			client = DYNAMIC_CLIENT_FACTORY.createClient(wsdlAddress);
			// add 時間設置防止webservice在訪問時候再次超時
			HTTPConduit conduit = (HTTPConduit) client.getConduit();
			HTTPClientPolicy policy = new HTTPClientPolicy();
			policy.setConnectionTimeout(1800000);
			policy.setReceiveTimeout(1800000);
			conduit.setClient(policy);
			MAP_CLIENTS.put(wsdlAddress, client);
		}
		Object[] results = client.invoke(method, params);
		return results;
	}

	/**
	 * 
	 * @param wsdlAddress
	 *            配置文件路徑
	 * @param method
	 * @param arg0
	 * @return
	 */
	public static String invoke(String wsdlAddress, String method, String params) throws Exception {
		Object[] results = invoke(wsdlAddress, method, new Object[] { params });
		if (results != null && results.length > 0 && results[0] != null) {
			return String.valueOf(results[0]);
		} else {
			return null;
		}

	}

	/**
	 * 創(chuàng)建客戶端地址集合
	 * 
	 * @param wsdlAddressList
	 * @return
	 */
	public static boolean addClientMap(List<String> wsdlAddressList) throws Exception {
		logger.debug("創(chuàng)建WebService開始");
		for (String wsdlAddress : wsdlAddressList) {
			try {
				Client client = DYNAMIC_CLIENT_FACTORY.createClient(wsdlAddress);
				// 設置超時時間
				HTTPConduit conduit = (HTTPConduit) client.getConduit();
				HTTPClientPolicy policy = new HTTPClientPolicy();
				policy.setConnectionTimeout(1800000);
				policy.setReceiveTimeout(1800000);
				conduit.setClient(policy);
				MAP_CLIENTS.put(wsdlAddress, client);
				logger.debug(wsdlAddress + "創(chuàng)建成功");
			} catch (Exception e) {
				logger.error(wsdlAddress + "創(chuàng)建失敗:" + e.getMessage());
				e.printStackTrace();
			}
		}
		logger.debug("WebService創(chuàng)建成功MAP_CLIENTS集合:" + MAP_CLIENTS);
		return true;
	}
}



更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产综合久久久久久鬼色 | 狠狠干影视 | 九九99九九视频在线观看 | 日本三级日本三级人妇三级四 | 国产日本三级 | 奇米影视国产 | 久久亚洲影院 | 婷婷亚洲五月色综合 | 九九久久精品 | 奇米第四色888 | 中文字幕在线视频免费 | 一区二区三区在线免费 | 青青草久热精品视频在线观看 | 97中文字幕在线观看 | 免费精品久久 | 欧美日韩激情在线一区 | 中文字幕视频在线观看 | 99精品在线看 | 香蕉久久综合精品首页 | 欧美ucjizz免费播放器 | 精品综合网 | 国产性色视频 | 亚洲精品国产综合99久久一区 | 午夜免费福利影院 | 久久久久国产精品四虎 | 欧美一级欧美一级毛片 | 一区二区三区免费在线视频 | 亚洲不卡视频 | 日本不卡免费新一区二区三区 | 久久免费高清视频 | 久久久久网站 | 在线综合 亚洲 欧美中文字幕 | 国产精品久久久久久久久鸭 | 日韩在线观看视频网站 | 五月激激激综合网色播免费 | 欧美日韩一卡二卡 | 中国一级免费毛片 | 九九热热 | 一本一道波多野结衣一区二区 | 依人九九 | 99热精品久久只有精品黑人 |