Comment puis-je définir le délai d'attente pour un JAX-WS webservice client?

J'ai utilisé JAXWS-RI 2.1 pour créer une interface pour mon web service, basé sur un document WSDL. Je peux interagir avec le service web pas de problèmes, mais je n'ai pas été en mesure de spécifier un délai pour l'envoi des demandes pour le service web. Si, pour une raison quelconque, il ne répond pas, le client semble juste pour faire tourner les roues pour toujours.

Chasse autour de, a révélé que je devrais probablement être en train d'essayer de faire quelque chose comme ceci:

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

J'ai aussi découvert que, selon la version de JAXWS-RI vous avez, vous devez définir ces propriétés, à la place:

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

Le problème que j'ai, c'est que, indépendamment de la méthode ci-dessus est correcte, je ne sais pas je peux le faire. Tout ce que j'ai obtenu est un Service sous-classe qui implémente l'auto-généré à l'interface du service web et au point que cela devient instanciée, si le WSDL est non réactif, alors qu'il est déjà trop tard pour définir les propriétés:

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

Quelqu'un peut me pointer dans la bonne direction?!

  • Je ne pense pas que j'ai une réponse pour vous, mais votre question m'a aidé à résoudre mon problème. Je savais à propos de la com.soleil.xml.ws.demande.propriété de délai d'attente, mais pas sur les com.soleil.xml.interne.ws.demande.délai d'attente de un.
InformationsquelleAutor ninesided | 2010-01-27