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'expiration pour l'envoi des demandes au service Web. Si, pour une raison quelconque, il ne répond pas, le client semble juste faire tourner ses roues pour toujours.
La chasse a révélé que je devrais probablement 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 é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 est que, indépendamment de ce qui est correct, je ne sais pas où je peux faire cela. Tout ce que j'ai, c'est une Service
sous-classe qui implémente l'interface générée automatiquement pour le service Web et au moment où cela est instancié, 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();
Est-ce que quelqu'un peut-il me montrer la bonne direction?!