Vorrei impostare i timeout di connessione per un servizio di riposo utilizzato dalla mia applicazione web. Sto usando Spring's RestTemplate per parlare con il mio servizio. Ho fatto alcune ricerche e ho trovato e utilizzato l'xml di seguito (nella mia applicazione xml) che credo abbia lo scopo di impostare il timeout. Sto usando Spring 3.0.
Ho anche visto lo stesso problema qui Configurazione del timeout per i servizi web primaverili con RestTemplate ma le soluzioni non sembrano così pulite , preferirei impostare i valori di timeout tramite Spring config
<bean id="RestOperations" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="readTimeout" value="${restURL.connectionTimeout}" />
</bean>
</constructor-arg>
</bean>
Sembra che qualunque cosa io abbia impostato come readTimeout ottengo quanto segue:
Cavo di rete scollegato: attende circa 20 secondi e segnala la seguente eccezione:
org.springframework.web.client.ResourceAccessException: errore I / O: nessuna route all'host: connessione; l'eccezione annidata è java.net.NoRouteToHostException: nessuna route all'host: connect
Url errato, quindi 404 restituito dal servizio di riposo: attende circa 10 secondi e segnala la seguente eccezione:
org.springframework.web.client.HttpClientErrorException: 404 non trovato
I miei requisiti richiedono timeout più brevi, quindi devo essere in grado di modificarli. Qualche idea su cosa sto sbagliando?
Grazie molto.
new
frase dispariSpring Boot
nell'esempio