2014-09-15 2 views
0

У меня есть приложение, которое использует Spring Websocket. Он отлично работает на Tomcat/WAS - мы старались его переносить на Wildfly. Там создается соединение sockjs, но как только клиент отправляет сообщение, соединение падает! Я включил поддержку asyn для сервлета весеннего диспетчера. Вот ошибка, которую я получаюSpring Sock Соединение JS часто падает на сервере wildfly 8

2014-09-11 23:50:59,459 ERROR [stderr] (default task-40) Exception in thread "default 
task-40" java.lang.RuntimeException: java.io.IOException: UT000029: Channel was closed 
mid chunk, if you have attempted to write chunked data you cannot shutdown the channel 
until after it has all been written. 
2014-09-11 23:50:59,462 ERROR [stderr] (default task-40)    at 

io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:527) 

2014-09-11 23:50:59,464 ERROR [stderr] (default task-40)    at 
io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java:294) 

2014-09-11 23:50:59,465 ERROR [stderr] (default task-40)    at 
io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java:432) 

2014-09-11 23:50:59,466 ERROR [stderr] (default task-40)    at 
io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(AsyncContextImpl.java:517) 

2014-09-11 23:50:59,468 ERROR [stderr] (default task-40)    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 

2014-09-11 23:50:59,469 ERROR [stderr] (default task-40)    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 

2014-09-11 23:50:59,471 ERROR [stderr] (default task-40)    at 
java.lang.Thread.run(Thread.java:745) 

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

ответ

1

я использовал wildfly 8.0 финал с с Spring 4.1.0 и JSF 2.0 & JDK 8.0_u25 Я сталкивался же исключение: UT005013: IOException произошло: java.io .IOException: UT000029: Канал был закрыт средним куском, если вы попытались записать фрагментированные данные вы не можете выключить канал до тех пор, пока он не будет записан.

И моя обработка центрального процессора увеличивается на 25% от каждого случая возникновения ошибки. Alhumdulillah Теперь я решаю свою проблему.

Сейчас я использую: Wildfly 8.2.0 Final С Spring 4.1.0 и JSF 2.0 & JDK 8.0_u25

Wildfly 8.2.0 решить мой процессор обработки вопрос я наблюдаю мой сервер почти 8 дней, то Я понимаю, что когда хост (Клиент/Пользователь) отправляет некоторый запрос на сервер, для которого требуется некоторое время для вычисления времени ответа сервера, пользователь закрывает окно своего браузера или выходит из системы, прежде чем получать ответ от сервера. когда сервер выполнил свою обработку, а затем попытается отправить ответ на свой конкретный запрос Host/Client, тогда произойдет IO Exception, потому что клиент закрыл окно браузера.

Надеюсь, это вам поможет :)

Смежные вопросы