Я використав JAXWS-RI 2.1 для створення інтерфейсу для моєї веб-служби на основі WSDL. Я не можу взаємодіяти з веб-службою без проблем, але не зміг вказати час очікування для надсилання запитів до веб-служби. Якщо з якихось причин це не реагує, клієнт просто здається крутитися, це колеса назавжди.
Полювання навколо показало, що я, мабуть, мав би намагатися зробити щось подібне:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
Я також виявив, що, залежно від того, яка версія JAXWS-RI у вас є, вам може знадобитися встановити ці властивості:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);
Проблема в мене полягає в тому, що, незалежно від того, що з наведеного вище є правильним, я не знаю, де я можу це зробити. Все, що я маю, - це Service
підклас, який реалізує автоматично згенерований інтерфейс до веб-служби, і в той момент, коли це стає інстанційним, якщо WSDL не реагує, тоді вже занадто пізно встановлювати властивості:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
Хтось може вказувати мені в правильному напрямку ?!