最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何解決Webservice第一次訪問特別慢的問題

 更新時間:2022年06月30日 09:57:24   作者:太陽99  
這篇文章主要介紹了如何解決Webservice第一次訪問特別慢的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Webservice第一次訪問特別慢問題

最近做一個項目遇到首次加載webservice的時候特別慢,于是Google一番,得到結果是

<system.net>
    <defaultProxy enabled="false" useDefaultCredentials="false">
      <proxy/>
      <bypasslist/>
      <module/>
    </defaultProxy>
  </system.net>

原理是:由于web代理默認是開啟的,也就是HttpWebRequest.DefaultWebProxy的值不為null,而這個DefaultWebProxy是一個全局變量。故第一次調(diào)用webservice方法的時候只有等這個默認代理超時以后才能繞過,所以第一次比較慢。

然而這個方法還不是特別慢的最大原因,所以即使這么做了效果依然沒有明顯的變快,于是又是一番的Google。

最終發(fā)現(xiàn)一個另一個因素:

原因很簡單,就是因為在第一次連接Webservice時,應用程序動態(tài)編譯生成序列化程序集導致的慢。

問題知道了那么就說說如何解決

1、首先如何提前生成序列化程序集

這個時候你會發(fā)現(xiàn)你的bin目錄下回生成一個“***.XmlSerializers.dll” 

2、接下來就簡單了,在程序啟動的時候就把這個文件加載進來就OK了

Assembly.LoadFrom(Application.StartupPath + "\\***.XmlSerializers.dll");

        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool ok;
            var m = new System.Threading.Mutex(true, "***.exe", out ok);
            if (!ok) return;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Assembly.LoadFrom(Application.StartupPath + "\\***.XmlSerializers.dll");
            Application.Run(new FormMain());
            GC.KeepAlive(m);
        }

3、騷年啟動你的應用程序吧

cxf動態(tài)調(diào)用Webservice接口

package cxfClient;
 
import org.apache.cxf.endpoint.Endpoint;
import javax.xml.namespace.QName;  
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
 
public class CxfClient { 
	public static void main(String[] args) throws Exception {
		String url = "http://localhost:9091/Service/SayHello?wsdl";
		String method = "say";
		Object[] parameters = new Object[]{"我是參數(shù)"};
		System.out.println(invokeRemoteMethod(url, method, parameters)[0]);
    }
	
	public static Object[] invokeRemoteMethod(String url, String operation, Object[] parameters){
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        if (!url.endsWith("wsdl")) {
            url += "?wsdl";
        }
        org.apache.cxf.endpoint.Client client = dcf.createClient(url);
        //處理webService接口和實現(xiàn)類namespace不同的情況,CXF動態(tài)客戶端在處理此問題時,會報No operation was found with the name的異常
        Endpoint endpoint = client.getEndpoint();
        QName opName = new QName(endpoint.getService().getName().getNamespaceURI(),operation);
        BindingInfo bindingInfo= endpoint.getEndpointInfo().getBinding();
        if(bindingInfo.getOperation(opName) == null){
        	for(BindingOperationInfo operationInfo : bindingInfo.getOperations()){
        		if(operation.equals(operationInfo.getName().getLocalPart())){
        			opName = operationInfo.getName();
        			break;
        		}
        	}
        }
		Object[] res = null;
		try {
			res = client.invoke(opName, parameters);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return res;
    } 	
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • springboot jpa實現(xiàn)優(yōu)雅處理isDelete的默認值

    springboot jpa實現(xiàn)優(yōu)雅處理isDelete的默認值

    如果多個實體類都有 isDelete 字段,并且你希望在插入時為它們統(tǒng)一設置默認值時改怎么做呢,本文為大家整理了一些方法,希望對大家有所幫助
    2024-11-11
  • 基于SpringBoot和Leaflet的行政區(qū)劃地圖掩膜效果實戰(zhàn)教程

    基于SpringBoot和Leaflet的行政區(qū)劃地圖掩膜效果實戰(zhàn)教程

    本文講解的是一種圖層級的掩膜,即使用行政區(qū)劃圖層來進行掩膜,使用場景為,用戶只需要在地圖頁面中展示目標行政區(qū)劃內(nèi)的影像信息,對于行政邊界外的影像,這篇文章主要介紹了基于SpringBoot和Leaflet的行政區(qū)劃地圖掩膜效果實戰(zhàn),需要的朋友可以參考下
    2024-05-05
  • 詳解springboot中redis的使用和分布式session共享問題

    詳解springboot中redis的使用和分布式session共享問題

    這篇文章主要介紹了詳解springboot中redis的使用和分布式session共享問題,詳細的介紹了解決分布式系統(tǒng)的session如何共享問題,有興趣的可以了解一下
    2017-11-11
  • Springboot使用redisson實現(xiàn)分布式鎖的代碼示例

    Springboot使用redisson實現(xiàn)分布式鎖的代碼示例

    在實際項目中,某些場景下可能需要使用到分布式鎖功能,那么實現(xiàn)分布式鎖有多種方式,常見的如mysql分布式鎖、zookeeper分布式鎖、redis分布式鎖,本文介紹springboot如何使用redisson實現(xiàn)分布式鎖,需要的朋友可以參考下
    2023-06-06
  • SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis)

    SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis)

    這篇文章主要介紹了SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis),本篇文章提煉出mybatis最經(jīng)典、最精簡、最核心的代碼設計,來實現(xiàn)一個mini-mybatis,從而熟悉并掌握ORM框架的涉及實現(xiàn),需要的朋友可以參考下
    2023-07-07
  • Java算法之遞歸算法計算階乘

    Java算法之遞歸算法計算階乘

    這篇文章主要為大家詳細介紹了Java遞歸算法計算階乘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • 基于Luhn算法的銀行卡校驗規(guī)則

    基于Luhn算法的銀行卡校驗規(guī)則

    這篇文章主要為大家介紹了基于Luhn算法的銀行卡校驗規(guī)則,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Java實現(xiàn)BP神經(jīng)網(wǎng)絡MNIST手寫數(shù)字識別的示例詳解

    Java實現(xiàn)BP神經(jīng)網(wǎng)絡MNIST手寫數(shù)字識別的示例詳解

    這篇文章主要為大家詳細介紹了Java實現(xiàn)BP神經(jīng)網(wǎng)絡MNIST手寫數(shù)字識別的相關方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • SpringBoot同一接口多個實現(xiàn)類配置的實例詳解

    SpringBoot同一接口多個實現(xiàn)類配置的實例詳解

    這篇文章主要介紹了SpringBoot同一接口多個實現(xiàn)類配置的實例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Spring bean注冊到容器的總結

    Spring bean注冊到容器的總結

    這篇文章主要介紹了Spring bean注冊到容器的總結,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12

最新評論

岳池县| 诏安县| 佛冈县| 上杭县| 宜宾县| 珠海市| 阳江市| 宝鸡市| 甘洛县| 聊城市| 沽源县| 襄汾县| 攀枝花市| 房山区| 吉木乃县| 光泽县| 永宁县| 洛浦县| 威海市| 溧阳市| 长武县| 江都市| 阜城县| 皮山县| 马鞍山市| 安西县| 余姚市| 纳雍县| 扶余县| 多伦县| 章丘市| 横山县| 滦南县| 弥渡县| 论坛| 孟州市| 仲巴县| 城市| 奉贤区| 桃源县| 鄂尔多斯市|