在我的Web服務客戶端(JAX-WS RI 2.2.9-b14002)中,我設置了非常低的連接和請求超時,但對於某些方法,我希望以默認超時不會更改的方式覆蓋它們。 用不同的話來說,我想在用戶調用特定的方法時設置更高的請求超時,保留所有其他方法的默認超時。是否可以在特定的Web服務方法中覆蓋默認請求超時?
在此先感謝,再見
在我的Web服務客戶端(JAX-WS RI 2.2.9-b14002)中,我設置了非常低的連接和請求超時,但對於某些方法,我希望以默認超時不會更改的方式覆蓋它們。 用不同的話來說,我想在用戶調用特定的方法時設置更高的請求超時,保留所有其他方法的默認超時。是否可以在特定的Web服務方法中覆蓋默認請求超時?
在此先感謝,再見
您可以先創建一個ClientConfig和創建新的客戶端時,提供其作爲參數做到這一點。
ClientConfig configuration = new ClientConfig();
configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000);
configuration.property(ClientProperties.READ_TIMEOUT, 1000);
Client client = ClientBuilder.newClient(configuration);
你可以通過使用請求上下文相信
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, REQUEST_TIMEOUT);
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, CONNECT_TIMEOUT);
謝謝,但我從來沒有問過:) 此外BindingProviderProperties來自com.sun.xml.internal.ws.client。而內部軟件包的使用會產生編譯錯誤。 – Gamby
爲什麼我要調用另一個方法之前重新創建客戶端,它沒有任何意義。 謝謝羅斯,但它不是我正在尋找的答案:( – Gamby