2017-05-29 48 views
0

在我的Web服務客戶端(JAX-WS RI 2.2.9-b14002)中,我設置了非常低的連接和請求超時,但對於某些方法,我希望以默認超時不會更改的方式覆蓋它們。 用不同的話來說,我想在用戶調用特定的方法時設置更高的請求超時,保留所有其他方法的默認超時。是否可以在特定的Web服務方法中覆蓋默認請求超時?

在此先感謝,再見

回答

0

您可以先創建一個ClientConfig和創建新的客戶端時,提供其作爲參數做到這一點。

ClientConfig configuration = new ClientConfig(); 
configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000); 
configuration.property(ClientProperties.READ_TIMEOUT, 1000); 
Client client = ClientBuilder.newClient(configuration); 
+0

爲什麼我要調用另一個方法之前重新創建客戶端,它沒有任何意義。 謝謝羅斯,但它不是我正在尋找的答案:( – Gamby

0

你可以通過使用請求上下文相信

requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, REQUEST_TIMEOUT); 
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, CONNECT_TIMEOUT); 
+0

謝謝,但我從來沒有問過:) 此外BindingProviderProperties來自com.sun.xml.internal.ws.client。而內部軟件包的使用會產生編譯錯誤。 – Gamby

相關問題