Я использую JAVA и библиотеку Джерси для отправки запросов на внешнюю службу REST. Приложение развернуто на weblogi c. Я заметил, что иногда (это около 1% всех запросов), вместо JSON отправляется xml.
Клиент из пакета com.sun.jersey.api.client.
Client client = new Client();
client.addFilter(new CustomFilter(logger));
WebResource resource = client.resource(url);
WebResource.Builder builder = resource.type(MediaType.APPLICATION_JSON)
builder.post(ClientResponse.class, request)
Над объектом запроса находится пользовательский класс с аннотацией: @XmlRootElement. CustomFilter расширяет ClientFilter.
В журналах я вижу:
2020-03-01T14:12:42
> POST https://api/resource
> Content-Type: application/json
{"attr1":"1","attr2":"2"}
|
2020-03-01T14:12:53
> POST https://api/resource
<?xml version="1.0" encoding="UTF-8"?><customRequest><attr1>1</attr1><attr2>2</attr2></customRequest>
Время ожидания на клиенте установлено равным 10 секундам. Как видите, время между запросом JSON и запросом XML составляет 11 секунд. Ответ возвращается после XML запроса. Похоже, что JSON вообще не было отправлено.
Версия на Джерси 1.19.1. Это ошибка на Джерси?