CXF 連線超時與請求超時的設定

2021-07-25 13:19:38 字數 2446 閱讀 9422

主要在客戶端呼叫時設定 :

**在編譯、執行是沒問題的,但測試發現如果服務端沒有啟動或網路環境差,cxf會預設等待一定的時間~~~

則有了客戶端呼叫超時的設定;

方式 1 - 在**中設定超時:

//這是命令生成的類,該類的例項可當成工廠來使用

cxfetcvremindinfoserviceimpl factory = new cxfetcvremindinfoserviceimpl();

//無參的方法,返回的是遠端web service服務端的**,服務端不能關閉。

cxfetcvremindinfoservice cxfport = factory.getcxfetcvremindinfoserviceimplport();

client client = clientproxy.getclient(cxfport);

client.getoutinterceptors().add(new loggingininterceptor());//輸出in資訊的日誌

client.getoutinterceptors().add(new loggingoutinterceptor());//輸出out資訊的日誌

//傳參的listlistinputparams = new arraylist();

cxfetcvremindinfopushinputparam inputparam = new cxfetcvremindinfopushinputparam();

inputparam.setdeparturedate("2016-12-09");

inputparams.add(inputparam);

// 連線引數設定

// 連線超時時間

policy.setconnectiontimeout(10000);

// 請求超時時間

policy.setreceivetimeout(10000);

conduit.setclient(policy);

//呼叫介面,返回資訊

listoutputparams = cxfport.pushevremindinfo(inputparams);

超時設定核心**為

// 連線引數設定

// 連線超時時間

policy.setconnectiontimeout(10000);

// 請求超時時間

policy.setreceivetimeout(10000);

conduit.setclient(policy);

<?xml version="1.0" encoding="utf-8"?>  

這裡需要注意的有幾個地方:   

1:需要指定http-conf命名空間 xmlns:http-conf=   

2:指定模式位置:   

3:http-conf:conduit中的name屬性,指定設定生效的服務,如例子中,只對服務名為projectservice的服務生效.   

使用下面的設定則會對所有服務生效   

網上看到一篇對證書的配置

僅針對目標https位址的web service客戶端進行配置

標籤是對cxf的客戶端,即產生影響,對沒有影響

會對所有的cxf客戶端都生效,可以通過name屬性,來指定生效範圍

實戰:全專案生效

希望對你有幫助,祝你有乙個好心情,加油!

CXF傳送 接收訊息超時設定

在使用webservice時,我們通常都會在客戶端中設定請求超時的限制,以避免長時間的去連線不可用的伺服器。在cxf的環境下,客戶端可通過兩個屬性配置超時限制 http.setclient httpclientpolicy spring cxf配置方式 這裡需要注意的有幾個地方 1 需要指定http...

IIS 請求 超時設定

asp.net 預設的 session state 模式是 in proc 程序內 資料是在 的應用程式池裡面儲存的。這樣在 web.config 設定的超時時間,是在應用程式池沒有發生 的基礎上才是有效的。這樣就出現了問題,為什麼應用程式池會發生 如何禁止應用程式池的 讓 session 的資料可...

http超時請求設定

http請求時候總是設定的兩個引數connectiontimeout和sockettimeout 在http請求時候總是設定兩個引數,就是連線超時和socket超時 解析 一次http請求,必定會有三個階段,一 建立連線 二 資料傳送 三,斷開連線。當建立連線在規定的時間內 connectionti...