[Java] fix restclient with useJackson3 omitting default HttpMessageConverters (#24587)
PR checklist
- Read the contribution guidelines.
- Pull Request title cleanly describes the fix/feature.
- Code compiles cleanly by running
mvn clean install -DskipTests. - Added unit tests for the fix/feature.
- Regenerated sample code via
./bin/generate-samples.sh ./bin/configs/java*.
Description of the Change
When generating the restclient library with useJackson3=true, ApiClient.mustache configures JacksonJsonHttpMessageConverter on HttpMessageConverters.ClientBuilder. I believe builder.registerDefaults() was accidentally omitted here. Without calling registerDefaults(), standard Spring converters (such as ByteArrayHttpMessageConverter, StringHttpMessageConverter, and ResourceHttpMessageConverter) are not registered on the built client.
Adding builder.registerDefaults() inside messageConverters ensures Spring's default converters remain registered alongside Jackson.
Fixes #24587
cc @bbdouglas @s2308 @javier20 @wing328 @jpfinne
Summary by cubic
Fixes missing Spring default HttpMessageConverters in restclient when useJackson3=true by using builder.registerDefaults().withJsonConverter(...), and switches XML to withXmlConverter(...) to prevent duplicates. Restores ByteArray/String/Resource support and avoids duplicate converters. Fixes #24587.
- Bug Fixes
- Update
ApiClient.mustacheto callbuilder.registerDefaults().withJsonConverter(new JacksonJsonHttpMessageConverter(mapper))andwithXmlConverter(new JacksonXmlHttpMessageConverter(xmlMapper)); add a regression test; regenerate samples. - Bump
spring-webto7.0.8acrossrestclient/resttemplatetemplates and all Spring Boot 4 samples.
- Update