Ползунок Revolution с видео: соединение закрыто

У нас есть приложение JSF, работающее на сервере Payara (5.182), которое включает веб-страницы с Revolution Slider (5.4.6.4).

Некоторые слайды настроены как видеофоны, и по большей части они работают именно так, как задумано, однако мы периодически видим следующую трассировку ПРЕДУПРЕЖДЕНИЯ в журналах сервера:

[2018-08-08T09:15:20.329-0400] [Payara 5.182] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=31 _ThreadName=http-thread-pool::http-listener-1(5)] [timeMillis: 1533734120329] [levelValue: 900] [[
  StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
java.io.IOException: Connection closed
    at org.glassfish.grizzly.asyncqueue.TaskQueue.onClose(TaskQueue.java:307)
    at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.onClose(AbstractNIOAsyncQueueWriter.java:477)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.closeConnection(TCPNIOTransport.java:388)
    at org.glassfish.grizzly.nio.NIOConnection.doClose(NIOConnection.java:642)
    at org.glassfish.grizzly.nio.NIOConnection$6.run(NIOConnection.java:608)
    at org.glassfish.grizzly.nio.DefaultSelectorHandler.execute(DefaultSelectorHandler.java:213)
    at org.glassfish.grizzly.nio.NIOConnection.terminate0(NIOConnection.java:602)
    at org.glassfish.grizzly.nio.transport.TCPNIOConnection.terminate0(TCPNIOConnection.java:267)
    at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.writeCompositeRecord(TCPNIOAsyncQueueWriter.java:173)
    at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:68)
    at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.processAsync(AbstractNIOAsyncQueueWriter.java:320)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:84)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:524)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.executeIoEvent(WorkerThreadIOStrategy.java:80)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:66)
    at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:391)
    at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:360)
    at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:324)
    at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:255)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at org.glassfish.grizzly.nio.transport.TCPNIOUtils.flushByteBuffer(TCPNIOUtils.java:125)
    at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.writeCompositeRecord(TCPNIOAsyncQueueWriter.java:165)
    ... 16 more

Мы предполагаем, что это происходит, когда все видео еще не загружено, а затем ползунок переключается на следующий слайд, но это всего лишь предположение. Мы попытались изменить настройки регистратора на сервере только для того, чтобы убрать предупреждение, но это не решает основную проблему.

Есть ли у кого-нибудь понимание того, что мы можем изменить либо в коде страницы слайдера, либо в консоли сервера, чтобы исправить это?

Заранее спасибо.


person Tony Shuba    schedule 08.08.2018    source источник
comment
Привет, прежде всего, этот вопрос в его нынешнем виде не связан с jsf (нет класса jsf ни в трассировке стека, ни в предоставленном вами коде), а не java-ee (путь к широкому), и, скорее всего, аналогичная ошибка возникнет на wildfly , стеклянная рыбка, кот или тому подобное. И я думаю, что единственный способ полностью предотвратить эту ошибку — сделать так, чтобы ползунок не скользил, если текущее видео не закончено, И запретить пользователю использовать кнопки «назад» и «вперед» в браузере И запретить пользователю закрывать браузер. Последние трудно решить, первый   -  person Kukeltje    schedule 08.08.2018
comment
@Kukeltje спасибо, что нашли время ответить. Поскольку это мой первый пост, прошу прощения за лишние теги. Несмотря на то, что они были широкими, я подумал, что было бы полезно включить их, но я удалил их. Я полностью согласен с вашим ответом, но с учетом популярности этих ползунков я все еще удивлен, что нет способа устранить это предупреждающее сообщение, когда приложение работает в контейнере сервлетов.   -  person Tony Shuba    schedule 08.08.2018


Ответы (1)


Как говорится в ошибке: «Установленное соединение было прервано программным обеспечением на вашем хост-компьютере», проблема не вызвана чем-либо, работающим в JVM. Это вообще не связано с Payara или даже с Java.

Вы должны проверить, что является причиной того, что соединение было прервано. Я предполагаю некоторую конфигурацию брандмауэра, программное обеспечение для управления сетью или, в худшем случае, вирус.

person OndroMih    schedule 08.08.2018
comment
Я ценю ваш комментарий. Это одна из тех проблем, которые трудно объяснить, поскольку многие вещи связаны друг с другом. Я согласен, что это не проблема Java или Payara как таковая. Во всяком случае, это скорее проблема Javascript/AJAX, скрытая в коде ползунка Revolution. Я просто описывал архитектуру приложения. Я считаю, что соединение прерывается во время выполнения скрипта из-за того, что запрос файла видео (mp4) не завершен, а ползунок движется дальше, а контейнер сервлетов предупреждает меня. Опять же, это не столько ошибка. - person Tony Shuba; 09.08.2018