Saya telah menggunakan JAXWS-RI 2.1 untuk membuat antarmuka untuk layanan web saya, berdasarkan WSDL. Saya dapat berinteraksi dengan layanan web tanpa masalah, tetapi belum dapat menentukan waktu tunggu untuk mengirim permintaan ke layanan web. Jika karena alasan tertentu tidak merespons, klien sepertinya memutar rodanya selamanya.
Berburu di sekitar telah mengungkapkan bahwa saya mungkin harus mencoba melakukan sesuatu seperti ini:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
Saya juga menemukan bahwa, bergantung pada versi JAXWS-RI yang Anda miliki, Anda mungkin perlu menyetel properti ini sebagai gantinya:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);
Masalah yang saya miliki adalah, terlepas dari yang mana di atas yang benar, saya tidak tahu di mana saya bisa melakukan ini. Yang saya dapatkan hanyalah Service
subclass yang mengimplementasikan antarmuka yang dihasilkan secara otomatis ke webservice dan pada titik ini semakin instan, jika WSDL tidak responsif maka sudah terlambat untuk mengatur properti:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
Adakah yang bisa mengarahkan saya ke arah yang benar ?!