0
我有一個現有的WSDL,並使用eclipse版本4.5生成客戶端。這給了我一個代碼生成的代理提供者。我試過以下沒有成功(順便說一句,我使用java 7.079):無法在JAX-WS上設置自定義超時Eclipse生成的客戶端
this.webservice = new ENC3WebAppServicePortProxy(username, password);
Descriptor desc = webservice._getDescriptor();
desc.setEndpoint(webserviceURL);
// Set timeout
BindingProvider bp = (BindingProvider) webservice._getDescriptor().getProxy();
Map<String, Object> requestContext = bp.getRequestContext();
requestContext.put("com.sun.xml.ws.connect.timeout", 120000); // Timeout in millis
requestContext.put("com.sun.xml.ws.request.timeout", 120000); // Timeout in millis
任何想法,爲什麼這不起作用?
僅供參考也嘗試了使用ibm-ws-bnd文件讓Liberty覆蓋超時設置的方法,但事實證明這更加困難,因爲無法發現他們希望將@WebServiceRef註釋放在哪裏代碼生成客戶端。客戶端代碼生成的事實消除了我完全理解它的工作方式,而不需要我付出很大努力,而且我沒有那種時間。
實際上,它似乎是你從com.sun.xml.ws.developer調用JASXWSProperties,我不這樣做。讓我嘗試一下。爲什麼哦爲什麼有這麼多不同的答案,似乎應該是非常直截了當的? – Matt1776
我實際上沒有可用的com.sun.xml.ws包,我也沒有javax.xml.ws.client包,它似乎與jaxws-rt.jar有關 - 這個jar文件從我的SE Java7.079 Oracle下載。我很茫然。 – Matt1776
你是對的我的JAXWSProperties來自jaxws-rt-2.2.10.jar。但常量的值與您直接設置的值相同。 ==> public static final String CONNECT_TIMEOUT = 「com.sun.xml.ws.connect.timeout」; ==> public static final String REQUEST_TIMEOUT = 「com.sun.xml.ws.request.timeout」; –