2017-05-29 2 views
0

Dans mon client de service Web (JAX-WS RI 2.2.9-b14002), je définis une connexion assez faible et des délais d'attente de demande, mais pour certaines méthodes, je voudrais les remplacer de manière à ce que le délai par défaut ne change pas . En l'exprimant différemment, je voudrais définir un délai de requête plus élevé lorsque l'utilisateur appelle une méthode spécifique, en conservant le délai d'expiration par défaut pour toutes les autres méthodes.Est-il possible de remplacer le délai de requête par défaut dans une méthode de service Web spécifique?

Merci à l'avance, bye

Répondre

0

Vous pouvez le faire en créant un premier ClientConfig et en fournissant comme argument lors de la création du nouveau client.

ClientConfig configuration = new ClientConfig(); 
configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000); 
configuration.property(ClientProperties.READ_TIMEOUT, 1000); 
Client client = ClientBuilder.newClient(configuration); 
+0

Pourquoi devrais-je recréer client avant d'appeler une autre méthode, il ne fait pas de sens. Merci Ros mais ce n'est pas la réponse que je cherche :( – Gamby

0

Vous pouvez le faire en utilisant le contexte de la demande, je crois

requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, REQUEST_TIMEOUT); 
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, CONNECT_TIMEOUT); 
+0

Merci, mais je n'ai jamais demandé que :) En outre BindingProviderProperties proviennent de com.sun.xml.internal.ws.client. et l'utilisation des paquets internes produit des erreurs de compilation. – Gamby