spring mvc - Jetty HttpChannel timeout error for embedded video in web page -
i have embedded video playing in background of web page, pretty how in www.airbnb.com
<div class="fullwidthbanner"> <video id="#myvideo" loop="loop" muted="muted" autoplay="autoplay"> <source th:src="@{/videos/cignme.mp4}" type="video/mp4" /> </video> </div>
however after initial play of may 10 seconds or so, video blacks out , page goes unresponsive, , see following logs
2015-03-28 17:17:33.854 warn 5109 --- [tp1590404373-40] org.eclipse.jetty.server.httpchannel : /videos/cignme.mp4 java.io.ioexception: java.util.concurrent.timeoutexception: idle timeout expired: 30002/30000 ms @ org.eclipse.jetty.util.sharedblockingcallback$blocker.block(sharedblockingcallback.java:234) @ org.eclipse.jetty.server.httpoutput.write(httpoutput.java:133) @ org.eclipse.jetty.server.httpoutput.write(httpoutput.java:347) @ org.springframework.util.streamutils.copy(streamutils.java:124) @ org.springframework.web.servlet.resource.resourcehttprequesthandler.writecontent(resourcehttprequesthandler.java:407) @ org.springframework.web.servlet.resource.resourcehttprequesthandler.handlerequest(resourcehttprequesthandler.java:240) @ org.springframework.web.servlet.mvc.httprequesthandleradapter.handle(httprequesthandleradapter.java:51) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:943) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:877) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966) @ org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:857) @ javax.servlet.http.httpservlet.service(httpservlet.java:687) @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:842) @ javax.servlet.http.httpservlet.service(httpservlet.java:790) @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:800) @ org.eclipse.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1669) @ org.springframework.web.filter.hiddenhttpmethodfilter.dofilterinternal(hiddenhttpmethodfilter.java:77) @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) @ org.eclipse.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1652) @ org.springframework.security.web.filterchainproxy.dofilterinternal(filterchainproxy.java:186) @ org.springframework.security.web.filterchainproxy.dofilter(filterchainproxy.java:160) @ org.eclipse.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1652) @ org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) @ org.eclipse.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1652) @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:585) @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:143) @ org.eclipse.jetty.security.securityhandler.handle(securityhandler.java:577) @ org.eclipse.jetty.server.session.sessionhandler.dohandle(sessionhandler.java:223) @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1125) @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:515) @ org.eclipse.jetty.server.session.sessionhandler.doscope(sessionhandler.java:185) @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1059) @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:141) @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:97) @ org.eclipse.jetty.server.server.handle(server.java:497) @ org.eclipse.jetty.server.httpchannel.handle(httpchannel.java:310) @ org.eclipse.jetty.server.httpconnection.onfillable(httpconnection.java:248) @ org.eclipse.jetty.io.abstractconnection$2.run(abstractconnection.java:540) @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:620) @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:540) @ java.lang.thread.run(thread.java:745) caused by: java.util.concurrent.timeoutexception: idle timeout expired: 30002/30000 ms @ org.eclipse.jetty.io.idletimeout.checkidletimeout(idletimeout.java:156) @ org.eclipse.jetty.io.idletimeout$1.run(idletimeout.java:50) @ java.util.concurrent.executors$runnableadapter.call(executors.java:511) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ java.util.concurrent.scheduledthreadpoolexecutor$scheduledfuturetask.access$201(scheduledthreadpoolexecutor.java:180) @ java.util.concurrent.scheduledthreadpoolexecutor$scheduledfuturetask.run(scheduledthreadpoolexecutor.java:293) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) ... 1 common frames omitted 2015-03-28 17:17:33.856 warn 5109 --- [tp1590404373-40] org.eclipse.jetty.server.httpchannel : not send response error 500: java.io.ioexception: java.util.concurrent.timeoutexception: idle timeout expired: 30002/30000 ms
i using callable
asynchronous request home page, that's it, call root context "/" returned home page without other operations has amongst other things embedded video.
@controller public class homecontroller { @resource private environment environment; @requestmapping(method = requestmethod.get, value = "/") public callable<string> home() { return new callable<string>() { @override public string call() throws exception { return "home-new"; } }; }
do have implement rtsp or rtmp this? or missing configuration or annotation take care of, making timeout 0 urls under path /videos/
?
in production using cloudfront serve video, more of problem local setup?
Comments
Post a Comment