2 votes

JAXWS et Http Post Timeout dans GlassFish v3.0.1

J'essaie de définir le délai de connexion et de requête pour un appel JAX WS et Http Post. Mon code fonctionne, mais seulement pour un maximum de 20 secondes. C'est-à-dire que je peux changer la valeur du timeout à 5 secondes, 2 secondes, cela fonctionne, mais en fixant la valeur du timeout à 30 secondes, le timeout se termine à 20 secondes, et en fixant la valeur du timeout à 60 secondes, le timeout se termine toujours à 20 secondes. Quelqu'un sait-il où est fixé ce maximum de 20 secondes ?

Pour JAXWS :

//This works, timed out in 10 seconds
((BindingProvider) soapPort).getRequestContext().put(JAXWSProperties.CONNECT_TIMEOUT, 10000);

// This would time out in 20 seconds!!!
((BindingProvider) soapPort).getRequestContext().put(JAXWSProperties.CONNECT_TIMEOUT, 60000);`

Pour Http :

// This works, timed out in 10 seconds
HttpConnectionParams.setConnectionTimeout(params, 10000);

// This would time out in 20 seconds!!!
HttpConnectionParams.setConnectionTimeout(params, 50000);

0voto

Paul Vargas Points 10652

Le moteur d'exécution JAX-WS par défaut pour Glassfish est Métro 2.0 . Voir le 5.6. Délais HTTP dans la section Guide du métro Nous avons donc :

// setConnectTimeout()
int timeout = ...;
Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
ctxt.put(JAXWSProperties.CONNECT_TIMEOUT, timeout);

// setReadTimeout()
int timeout = ...;
Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
ctxt.put("com.sun.xml.ws.request.timeout", timeout);

A titre indicatif, vous pouvez constater qu'il y a trois paramètres pour Websphere (dans Metro 2.0 seulement deux), qui sont :

  1. CONNECTION_TIMEOUT : Temps d'attente du client WebSphere JAX-WS pour établir une connexion http/https (180 secondes par défaut).
  2. WRITE_TIMEOUT : Le temps que le client attendra pour terminer l'envoi de la demande (la valeur par défaut est de 300 secondes).
  3. RESPONSE_TIMEOUT : Le temps que le client doit attendre pour recevoir la réponse (la valeur par défaut est de 300 secondes).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X