2013-03-16 78 views
1

我在使用primefaces的JSF頁面中有一個下載鏈接。 當你點擊它時,瀏覽器(而不是程序)打開一個對話框詢問(打開,保存,關閉)。我正在使用eclipse默認瀏覽器來查看我的Web應用程序。 因此,如果您單擊打開或保存,文件將被下載。一切安好。 但是,如果你點擊取消一切都失敗。我在下面收到的錯誤。我在談話範圍內擁有bean。當我取消下載對話框時,文件下載,PrimeFaces,Connection關閉

WARNING: org.apache.catalina.connector.ClientAbortException: java.io.IOException: An existing connection was forcibly closed by the remote host 
javax.faces.FacesException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: An existing connection was forcibly closed by the remote host 
    at org.primefaces.component.filedownload.FileDownloadActionListener.processAction(FileDownloadActionListener.java:81) 
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) 
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:772) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:300) 
    at javax.faces.component.UIData.broadcast(UIData.java:912) 
    at org.primefaces.component.datalist.DataList.broadcast(DataList.java:248) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) 
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: An existing connection was forcibly closed by the remote host 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:382) 
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:351) 
    at org.apache.catalina.connector.Response.flushBuffer(Response.java:645) 
    at org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:326) 
    at com.sun.faces.context.ExternalContextImpl.responseFlushBuffer(ExternalContextImpl.java:855) 
    at org.primefaces.component.filedownload.FileDownloadActionListener.processAction(FileDownloadActionListener.java:76) 
    ... 40 more 
Caused by: java.io.IOException: An existing connection was forcibly closed by the remote host 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69) 
    at sun.nio.ch.IOUtil.write(IOUtil.java:40) 
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336) 
    at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:106) 
    at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:74) 
    at com.sun.grizzly.http.SocketChannelOutputBuffer.flushChannel(SocketChannelOutputBuffer.java:321) 
    at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:392) 
    at com.sun.grizzly.http.SocketChannelOutputBuffer.flush(SocketChannelOutputBuffer.java:370) 
    at com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1174) 
    at com.sun.grizzly.tcp.Response.action(Response.java:266) 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:378) 
    ... 45 more 

回答

0

貌似有2個或更多一致的請求文件download.this發生在你對一個文件下載請求提交之前再次請求同一個文件/服務器同時爲您服務下載請求。

出現這種情況,如果你有下載管理器應用程序集成到您的瀏覽器,如互聯網下載管理,通常做申請文件下載兩次。

+0

這也發生在您取消正常下載時。或者在檢索頁面,css,js或其他內容的過程中關閉瀏覽器 – Kukeltje 2016-07-20 16:27:06