Je suis confronté à un problème dans Webservice, dans les détails: Lorsque j'essaie d'envoyer une demande au service cible, il faut 30 à 60 secondes et que l'exception ci-dessus est lancée . J'utilise Tomcat 5, et j'aimerais demander s'il y a un moyen d'augmenter la valeur du délai d'expiration?
De plus, le WSDL et le service Web que je veux accéder est en cours d'exécution et disponible. P> J'apprécie grandement toute aide à cet égard, P> Cordialement,
P. P> p>
3 Réponses :
Vous devez définir "recueil" pour cette demande. p>
Cette page contient des détails sur l'ajout de cette propriété à demander le contexte: p>
juste avant de faire appel de votre service Web (c.-à-d. port.someaction (....) code>), vous devez définir le délai de requête sur une quantité plus importante dans la requêteContext:
// Set request context property.
java.util.Map<String, Object> requestContext =
((javax.xml.ws.BindingProvider) port).getRequestContext();
requestContext.put("com.sun.xml.internal.ws.request.timeout", new Long(600000));
Je pense que mettre des variables de contexte n'est pas une si mauvaise idée, mais il n'ya aucun moyen de vous assurer que les packages de com.sun.xml.internal. * Code> sont disponibles sur chaque JRE.
Je suis un peu en retard à cette fête, mais j'ai essayé les autres solutions, et ils n'ont pas fonctionné, mais Ce a fait.
MyWebService service = new MyWebService(); MyWebServicePortType client = service.MyWebServicePort(); Client cl = ClientProxy.getClient(client); HTTPConduit http = (HTTPConduit) cl.getConduit(); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); httpClientPolicy.setConnectionTimeout(0); httpClientPolicy.setReceiveTimeout(0); http.setClient(httpClientPolicy); client.doSomething(...);
Cette réponse doit être acceptée comme solution, seule la réponse de travail ici.