xfire逾時與retry設定

來源:互聯網
上載者:User

網上解決辦法:

        params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,Boolean.FALSE);
        //設定ws連線逾時時間
        params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 20000l);
        client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS,params);

 

對網上答案太失望了,一個答案打出轉載,但是估計沒有人真正試過,反正對於我的問題是錯的,如果對方機器處於關機狀態的話需要串連多次,並且設定連線時間也沒用,無奈之下去看原始碼,版本是1.2.6。

發現有個地方的代碼邏輯可能有問題:org.codehaus.xfire.transport.http.CommonsHttpMessageSender中的createClient方法,其中第233行client.setHttpConnectionManager(manager);,而252行client.setParams(params);才將我們自訂的結果設定進去,所以不行,暫時的解決辦法是:

HttpConnectionParams.getDefaultParams().setIntParameter(    HttpConnectionParams.CONNECTION_TIMEOUT, (int) TIME_OUT);params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,     Boolean.FALSE);   params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT,     TIME_OUT);// 單位是毫秒   params.setParameter(HttpClientParams.RETRY_HANDLER,     new DefaultHttpMethodRetryHandler(RETRY_TIMES, false)); // 設定重連次數   params.setParameter(HttpClientParams.SO_TIMEOUT, SO_TIMEOUT);   Client c = Client.getInstance(service);   c.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);   c.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, SO_TIMEOUT);

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.