7
votes

WebService / java.net.sockettimeTException: lu expiré

Je suis confronté à un problème dans Webservice, dans les détails: xxx

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.

J'apprécie grandement toute aide à cet égard,

Cordialement, P.


0 commentaires

3 Réponses :


3
votes

Vous devez définir "recueil" pour cette demande.

Cette page contient des détails sur l'ajout de cette propriété à demander le contexte:

http://cxf.apache.org/docs/developing-a- Consumer.html


0 commentaires

-1
votes

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));


1 commentaires

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. * sont disponibles sur chaque JRE.



3
votes

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(...);


1 commentaires

Cette réponse doit être acceptée comme solution, seule la réponse de travail ici.