Не удалось прочитать HTTP-сообщение: ion: ошибка синтаксического анализа JSON: неожиданный конец ввода в VALUE_STRING: непредвиденное чтение EOF в сокете - PullRequest
0 голосов
/ 26 июня 2019

Когда клиент отправляет изображение на одну из остальных конечных точек, принимается только часть данных.

Чтобы быть уверенным в том, что происходит, я сделал трассировку с помощью Wireshark и проанализировал ее.Приложение действительно не получает последнюю часть сообщения.Это связано с тем, что приложение не может получить все данные в течение времени ожидания 900 мс, указанного на стороне клиента.Его буферы заполнены на полпути через прием.

Я получаю предупреждение приложения org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver [http-nio-0.0.0.0-9999-exec-35]Не удалось прочитать сообщение HTTP: org.springframework.http.converter.HttpMessageNotReadableException: ошибка ввода-вывода при чтении входного сообщения;вложенное исключение - java.io.EOFException: непредвиденное чтение EOF в сокете

И клиент получает тайм-аут соединения.

1 Ответ

0 голосов
/ 01 июля 2019

У меня есть решение моей проблемы. Я увеличил размер буфера сокета в моем приложении. Я добавил следующий код в мой класс Application.

@ Bean public EmbeddedServletContainerFactory embeddedServletContainerFactory () { TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory = new TomcatEmbeddedServletContainerFactory (); tomcatEmbeddedServletContainerFactory.setProtocol ( "org.apache.coyote.http11.Http11Nio2Protocol"); Соединитель tomcatEmbeddedServletContainerFactory.addConnectorCustomizer ((TomcatConnectorCustomizer) -> { Connector.setProperty ("socket.rxBufSize", "5000000"); }); return tomcatEmbeddedServletContainerFactory; }

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