Вы используете веб-клиент Spring RestTemplate
в среде, отличной от Spring (по крайней мере, ваш пример демонстрирует, что вы запускаете этот тест стандартным Java способом).
Если вы запускаете Spring приложению, он принимает большую часть конфигурации к себе, включая добавление конвертеров (конвертеры по умолчанию из пакета org.springframework.http.converter.*
: ByteArrayHttpMessageConverter, StringHttpMessageConverter, ResourceHttpMessageConverter, AllEncompassingHttpMessageConverter, MappingJackson2XmlHttpMessageConessHerverMasterPerverververter). Последнее - для вашего случая RestTemplate использует внутренний Джексон для конвертации.
Итак, если вы хотите использовать ваш пример, просто добавьте указанный c конвертер.
Более простой способ - добавьте библиотеку Джексона и преобразуйте вручную:
var mapper = ObjectMapper();
var strPayload = mapper.writeValueAsString(payload);
И используйте strPayload
в RestTempate
вызовах.
Или просто запустите приложение как Spring.