Como configuro o tempo limite para um cliente de serviço da web JAX-WS?

Eu usei o JAXWS-RI 2.1 para criar uma interface para o meu serviço da Web, com base em um WSDL. Posso interagir com o serviço da web sem problemas, mas não foi possível especificar um tempo limite para o envio de solicitações ao serviço da web. Se, por algum motivo, ele não responder, o cliente parece girar as rodas para sempre.

Caçar revelou que eu provavelmente deveria estar tentando fazer algo assim:

((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);

Também descobri que, dependendo da versão do JAXWS-RI que você possui, pode ser necessário definir essas propriedades:

((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);

O problema que tenho é que, independentemente de qual das opções acima está correta, não seiOnde Eu posso fazer isso. Tudo o que tenho é umService subclasse que implementa a interface gerada automaticamente para o serviço da web e no momento em que isso é instanciado, se o WSDL não responde, já é tarde para definir as propriedades:

MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();

Alguém pode me apontar na direção certa?!

questionAnswers(8)

yourAnswerToTheQuestion