Мне удалось установить SSL-соединение с сервером песочницы и отправить объект как сериализованный объект XML, применив тип содержимого MediaType.APPLICATION_XML. Однако этого недостаточно, так как целевая служба поддерживает только SOAP и ожидает, что сообщение будет должным образом упаковано в конверт.
final var webClient = WebClient.builder()
.baseUrl(fmdConfiguration.getSinglePackUrl())
.clientConnector(connector)
.exchangeStrategies(exchangeStrategies)
.filter(logResponseStatus())
.filter(logRequest())
.build();
return webClient
.method(GET)
.contentType(MediaType.APPLICATION_XML)
.body(BodyInserters.fromObject(request))
.retrieve()
.bodyToMono(SinglePackPingResponse.class);
Вот ответ от сервиса:
Unable to create envelope from given source because the root element is not named "Envelope"
К сожалению, WebClient не поддерживает медиа-тип application/soap+xml. Когда я пытаюсь использовать его, WebClient выдает следующую ошибку:
org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'application/soap+xml;charset=UTF-8' not supported for bodyType=eu.nmvs.SinglePackPingRequest
at org.springframework.web.reactive.function.BodyInserters.unsupportedError(BodyInserters.java:300)