When using RestTemplateBuilder
in a native-image, for example in this code:
private final RestTemplateBuilder restTemplateBuilder;
// ...
RestTemplate restTemplate = this.restTemplateBuilder
.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
then this fails in a native image with this stacktrace:
java.lang.IllegalStateException: Request factory class org.springframework.http.client.SimpleClientHttpRequestFactory does not have a suitable setConnectTimeout method
at org.springframework.boot.web.client.RestTemplateBuilder$RequestFactoryCustomizer.findMethod(RestTemplateBuilder.java:782)
at org.springframework.boot.web.client.RestTemplateBuilder$RequestFactoryCustomizer.setConnectTimeout(RestTemplateBuilder.java:761)
at org.springframework.boot.web.client.RestTemplateBuilder$RequestFactoryCustomizer.accept(RestTemplateBuilder.java:736)
at org.springframework.boot.web.client.RestTemplateBuilder.buildRequestFactory(RestTemplateBuilder.java:656)
at org.springframework.boot.web.client.RestTemplateBuilder.configure(RestTemplateBuilder.java:614)
at org.springframework.boot.web.client.RestTemplateBuilder.build(RestTemplateBuilder.java:589)
at com.example.resttemplate.CLR.http(CLR.java:33)
at com.example.resttemplate.CLR.run(CLR.java:26)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:768)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at com.example.resttemplate.RestTemplateApplication.main(RestTemplateApplication.java:13)
This can be observed in https://ci.spring.io/teams/spring-aot-smoke-tests/pipelines/spring-aot-smoke-tests-1.0.x/jobs/rest-template/builds/1
Comment From: mhalbritter
Ah, sorry, this is a boot issue.