Délai d'attente de configuration pour le printemps webservices avec RestTemplate
Je voudrais configurer un délai d'attente sur le côté client pour le printemps des services web à l'aide de RestTemplate. J'ai essayé la configuration suivante :
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="readTimeout" value="10000" />
</bean>
</constructor-arg>
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter" />
<ref bean="marshallingHttpMessageConverter" />
</list>
</property>
</bean>
Mais j'ai un NoClassDefFoundError lorsque je démarre mon tomcat :
06 févr. 2012 10:43:43,113 [ERROR,ContextLoader] Context initialization failed
java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpMethodBase
Toutefois, j'ai inclus commons-httpclient dans mon pom.xml :
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency
Aucune idée de comment je pourrais faire pour régler la situation?
Merci d'avance !
OriginalL'auteur jsebfranck | 2012-02-06
Vous devez vous connecter pour publier un commentaire.
Snicolas répondre à presque fonctionné pour moi, n'avait qu'à changer la fonte de la Classe:
Aussi, vous pouvez définir le délai de connexion:
OriginalL'auteur Eduardo Mayer
Cela a fonctionné pour moi
Je l'ai utilisé dans la version android de printemps android reste modèle.
Valeur par défaut est de 60 * 1000
OriginalL'auteur Snicolas
J'ai eu le même problème et a d'abord essayé d'y remédier en modifiant la configuration Spring
mais mes tentatives ont été tous unsucessfull.
Enfin, j'ai partiellement résolu en définissant les suivantes JVM propriétés système :
soleil.net.client.defaultConnectTimeout
soleil.net.client.defaultReadTimeout
(suivez ce lien pour plus de détails sur : http://docs.oracle.com/javase/1.4.2/docs/guide/net/properties.html )
D'abord, j'injecte mon des valeurs personnalisées pour "délai de connexion"
et "délai d'attente" stockées dans un fichier de propriétés, à l'aide d'un "home made" configuration bean :
Ensuite, j'ai mis la JVM propriétés du système en utilisant le Système.setProperty(... ) méthode comme ceci :
Je n'ai qu'une difficulté à gauche : la valeur définie dans le soleil.net.client.defaultConnectTimeout
ne semble pas être pris en compte.
Après avoir fait des tests un peu plus, j'ai réalisé qu'il se passe lorsque j'essaie d'atteindre mes hôtes de la cible par l'intermédiaire d'un serveur proxy (Squid dans mon cas).
Cependant ,il existe un inconvénient à l'utilisation de cette méthode de paramétrage : les paramètres de délai d'expiration sera utilisé pour toutes les nouvelles demandes
Ce qui concerne
OriginalL'auteur Pascal
J'ai eu le même besoin d'être en mesure de fixer de délai d'attente pour le webservice de la consommation, et je viens de le résoudre avec un autre printemps conf.
D'abord avec la configuration ci-dessous, j'ai eu le même problème que @jsebFrank (java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpMethodBase)
Mais, comme le Printemps de soutien expliquer ici (dans l'article 16.5 de la gestion des timeouts), vous pouvez utiliser le SimpleClientHttpRequestFactory demande d'usine (qui est celui par défaut pour le Printemps restTemplate).
De l'utiliser, je n'ai pas de problème:
OriginalL'auteur pierrefevrier