0
我目前正在开发Vaadin应用程序。我正在处理的功能是创建两个PDF,将它们合并,然后将其作为临时文件下载到客户端。只有几次,我得到这个奇怪的IOException,没有参考我的代码。任何想法可能会导致它?获取java.io.IOException:从DownloadStream关闭流
堆栈跟踪:
java.io.IOException: Stream Closed
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at com.vaadin.server.DownloadStream.writeResponse(DownloadStream.java:304)
at com.vaadin.server.AbstractClientConnector.handleConnectorRequest(AbstractClientConnector.java:646)
at com.vaadin.server.ConnectorResourceHandler.handleRequest(ConnectorResourceHandler.java:83)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
感谢您的回复!这也是我得到的。奇怪的是,当我在本地计算机上运行此应用程序时,我从来没有得到错误。我有一台服务器,有50多个用户在线。有什么办法可以在我的本地测试服务器上创建此错误,以更好地理解我的流? – Mikkel
您可以通过执行我上面所述的操作来创建错误,但我无法看清这一点。你必须做的是修复它,即找到抛出异常之前关闭流的路径。 – EJP
关于为什么这个错误不会定期显示的想法?它有时会弹出。 – Mikkel