我正在將JAX-RPC客戶端和服務轉換爲JAX-WS,並試圖找出如何以編程方式設置客戶端超時。這將是在WebSphere 7中運行的JAX-WS 2.1客戶端。在JAX-RPC中,我可以在SOAPBindingStub上設置一個屬性來設置超時。如何以編程方式在WebSphere 7中設置JAX-WS 2.1 JMS客戶端超時?
在JAX-WS代碼,我試過設置幾個屬性如下,沒有運氣:
PolicyFinderService policyFinderService = new PolicyFinderService();
PolicyFinder policyFinder = policyFinderService.getPolicyFinderSOAPPort();
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.websvcs.Constants.REQUEST_TIMEOUT_PROPERTY, 1);
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.websvcs.Constants.WRITE_TIMEOUT_PROPERTY, 1);
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.READ_TIMEOUT_PROPERTY, 1);
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.RESPONSE_TIMEOUT_PROPERTY, 1);
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.WRITE_TIMEOUT_PROPERTY, 1);
這些都沒有任何效果,當我撥打電話和服務沒有運行,它只是暫停超時前的默認超時值(我認爲5分鐘)。
有沒有人找到一種方法在WebSphere 7中以編程方式設置此超時值?
謝謝,我會給這兩個嘗試。 – 2010-01-13 21:24:56
這是com.ibm.wsspi.webservices.Constants.CONNECTION_TIMEOUT_PROPERTY!當前的配置在連接時遇到問題,所以它甚至不會進入其他超時 - 因此需要連接超時。唯一的情況是,這是在幾秒鐘內,而不是毫秒(我使用了10的值)。但是,這正是我所期待的。謝謝! – 2010-01-13 21:41:00
我嘗試了上述所有屬性,但它對響應超時沒有任何影響,我使用部署在WAS v.7上的jax-ws客戶端來調用部署在WebLogic v.10.3上的Web服務。有什麼建議麼?謝謝! – guirgis 2011-08-18 13:57:38