J'ai utilisé JAXWS-RI 2.1 pour créer une interface pour mon service web, basée sur un WSDL. Je peux interagir avec le service web sans problème, mais je n'ai pas été en mesure de spécifier un délai d'attente pour l'envoi de demandes au service web. Si, pour une raison quelconque, il ne répond pas, le client semble tourner en rond pour toujours.
En cherchant un peu, j'ai découvert que je devrais probablement essayer de faire quelque chose comme ça :
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
J'ai également découvert que, selon la version de JAXWS-RI dont vous disposez, vous devrez peut-être 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 qu'indépendamment de ce qui précède, je ne sais pas où Je peux le faire. Tout ce que j'ai, c'est un Service
qui implémente l'interface générée automatiquement pour le webservice. Au moment où cette classe est instanciée, si le WSDL ne répond pas, 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-il m'indiquer la bonne direction ?