Chciałbym ustawić limity czasu połączenia dla usługi odpoczynku używanej przez moją aplikację internetową. Używam Spring's RestTemplate do rozmowy z moją usługą. Zrobiłem kilka badań i znalazłem i użyłem XML poniżej (w mojej aplikacji xml), który moim zdaniem ma na celu ustawienie limitu czasu. Używam Spring 3.0.
Widziałem również ten sam problem tutaj Konfiguracja limitu czasu dla sprężynowych usług sieciowych z RestTemplate, ale rozwiązania nie wydają się tak czyste , wolałbym ustawić wartości limitu czasu za pomocą konfiguracji Springa
<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>
Wygląda na to, że niezależnie od ustawienia readTimeout na otrzymuję następujące informacje:
Odłączony kabel sieciowy: czeka około 20 sekund i zgłasza następujący wyjątek:
org.springframework.web.client.ResourceAccessExcepcja: Błąd we / wy: brak trasy do hosta: połącz; zagnieżdżony wyjątek to java.net.NoRouteToHostException: Brak trasy do hosta: connect
Adres URL jest niepoprawny, więc 404 zwrócony przez usługę odpoczynku: czeka około 10 sekund i zgłasza następujący wyjątek:
org.springframework.web.client.HttpClientErrorException: 404 Not Found
Moje wymagania wymagają krótszych limitów czasu, więc muszę mieć możliwość ich zmiany. Jakieś pomysły, co robię źle?
Wielkie dzięki.
new
stwierdzenie wSpring Boot
przykładzie