Отключите chunked-кодировку передачи для JAX-WS Client в Wildfly 8 - PullRequest
0 голосов
/ 24 августа 2018

Я пишу SOAP-клиент, используя JAX-WS на Wildfly 8 .

При отправке небольших сообщений на мой сервер клиент работает правильно. Когда сообщение становится слишком большим, добавляется заголовок «Transfer-Encoding: chunked» , и сервер прекращает принимать сообщения.

Поскольку я не контролирую серверную часть, Я ищу способ сказать Wildfly, чтобы он прекратил разбивать большие сообщения.

Я нашел решение для WebSphere здесь: Отключить кодированное кодирование передачи для клиента JAX-WS в WebSphere Application Server 8.5

Я настроил обработчик. Я проверил, что этот обработчик вызывается с каждым исходящим запросом. Это выглядит так:

public boolean handleMessage(SOAPMessageContext smc) {
  ctx.put(*HTTPConstants.CHUNKED*, "false");
  return true;
}

Поскольку я использую Wildfly, а не WebSphere, у меня нет HTTPConstants.CHUNKED на моем пути к классам. Кто-нибудь знает, что я мог бы использовать, чтобы сказать Wildlfy, чтобы он прекратил рассылать сообщения? Возможно ли это даже с помощью обработчика?

1 Ответ

0 голосов
/ 24 августа 2018

Насколько я знаю, клиент не имеет права использовать или не использовать HTTP-чанкинг. Клиент должен принять оба, и окончательное решение принимается на серверной стороне .

Важно понимать, что фрагментация - это не формат, а кодировка передачи . Звучит вполне естественно, что сервер выбирает лучший способ передачи больших данных (возможен вариант архивирования, еще один вариант - чанкинг) ...

См. HTTP 1.1 - Может ли клиентский запрос, который передает, не быть "порожденным"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...