Мы используем версию 1.3.4 play и сталкиваемся со странной периодически возникающей проблемой при записи ответа JSON обратно клиенту.
В настоящее время приложение использует библиотеку воспроизведения Controller.renderJSON(gson().toJson(object));
для записи ответа.
Мы включили воспроизведение журнала до уровня «Трассировка» и обнаружили, что он выдает ошибку закрытого канала перед записью содержимого.
Эта проблема возникает только в одной из наших промежуточных сред, но нормально работает в других средах.как TEST и PROD, так что это не похоже на проблему с кодом.
Может кто-нибудь подсказать, в чем может быть проблема?
Это связано с ресурсами ОС Linux?
Фрагмент журнала:
2018-10-04 08:05:30,535 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“copyResponse: begin”
2018-10-04 08:05:30,536 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“writeResponse: begin”
2018-10-04 08:05:30,537 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“writeResponse: content length [13410]”
2018-10-04 08:05:30,537 app=“deliver”, level=DEBUG, thread=play-thread-1, logger=play, userId="", reqAction="", **reqUrl="", message=“Try to write on a closed channel[keepAlive:true]: Remote host may have closed the connection”**
2018-10-04 08:05:30,537 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“writeResponse: end”
2018-10-04 08:05:30,537 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“copyResponse: end”
2018-10-04 08:05:30,537 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“execute: end”
2018-10-04 08:05:30,538 app=“deliver”, level=TRACE, thread=play-thread-1, logger=play, userId="", reqAction="", reqUrl="", message=“run: end”