Web hizmetim için WSDL tabanlı bir arayüz oluşturmak için JAXWS-RI 2.1 kullandım. Web hizmetiyle sorunsuz etkileşim kurabiliyorum, ancak web hizmetine istek göndermek için bir zaman aşımı belirleyemedim. Herhangi bir nedenle cevap vermezse, müşteri tekerleklerini sonsuza kadar döndürüyormuş gibi görünür.
Etrafta dolaşmak, muhtemelen böyle bir şey yapmaya çalışmam gerektiğini ortaya çıkardı:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
Ayrıca, sahip olduğunuz JAXWS-RI sürümüne bağlı olarak şu özellikleri ayarlamanız gerekebileceğini de keşfettim:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);
Sorun şu ki, yukarıdakilerden hangisi doğru olursa olsun, bunu nerede yapabileceğimi bilmiyorum . Sahip olduğum tek şey Service
, web hizmetine otomatik olarak oluşturulan arabirimi uygulayan bir alt sınıf ve bu noktada, WSDL yanıt vermiyorsa, özellikleri ayarlamak için çok geç kalınmıştır:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
Biri beni doğru yönü gösterebilir mi ?!