java下载的时候报Software caused connection abort: socket write error 求解是什么原因啊

p1314520_zjb 2018-03-22 02:05:58
页面用ajax 发送请求到后端,下面是后端代码:
@RequestMapping("/download")
public void download(HttpServletRequest request,HttpServletResponse response) throws Exception {

String fileName = request.getParameter("fileName");
fileName=java.net.URLDecoder.decode(fileName, "UTF-8");
String root = request.getSession().getServletContext().getRealPath("") + "/file";//下载地址
File file = new File(root, File.separator + fileName);
downFile(response, fileName.substring(fileName.lastIndexOf("/")+33), file);

}


/**
* 2018年3月20日
* 将文件下载到本地 消除文件名中文乱码
* @param response
* @param downFileName
* @param file
* @throws Exception
*/
public void downFile(HttpServletResponse response, String downFileName,
File file) throws Exception {
if(file.exists()){ //文件存在
response.setContentType("application/force-download");// 设置强制下载不打开
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;fileName="
+ downFileName);// 设置文件名
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i ;
while ((i=bis.read() )!= -1) {
os.write(buffer, 0, i);
os.flush();
}
bis.close();
fis.close();
}
}


然后是报错信息:
[2018-03-22 13:57:30,882] SG-UAP :ERROR RestExceptionResolver:141 - ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:319)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at com.ljdy.construction.fzys.Ys_sgzlController.downFile(Ys_sgzlController.java:271)
at com.ljdy.construction.fzys.Ys_sgzlController.download(Ys_sgzlController.java:244)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at com.sgcc.uap.kernel.spring.ModuleWebDispatcher.doDispatch(ModuleWebDispatcher.java:211)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.sgcc.uap.kernel.web.adaptor.ModuleServletAdaptor.service(ModuleServletAdaptor.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.sgcc.uap.kernel.httpservice.internal.ServletRegistration.doHandleRequest(ServletRegistration.java:170)
at com.sgcc.uap.kernel.httpservice.internal.AbstractRegistration.handleRequest(AbstractRegistration.java:58)
at com.sgcc.uap.kernel.httpservice.internal.ProxyServlet.processRequest(ProxyServlet.java:345)
at com.sgcc.uap.kernel.httpservice.internal.ProxyServlet.service(ProxyServlet.java:175)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.sgcc.uap.kernel.web.server.UapModuleContextServlet.service(UapModuleContextServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:196)
at com.sgcc.uap.health.filter.UrlMonitorFilter.doFilter(UrlMonitorFilter.java:79)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.integrate.isc.filter.ClientContextFilter.doFilter(ClientContextFilter.java:57)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.integrate.isc.filter.AuthFilter.doFilter(AuthFilter.java:73)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.integrate.isc.filter.IscCas20ProxyReceivingTicketValidationFilter.doFilter(IscCas20ProxyReceivingTicketValidationFilter.java:83)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.integrate.isc.filter.IscAuthenticationFilter.doFilter(IscAuthenticationFilter.java:77)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.integrate.isc.filter.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:48)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter$FilterChainImpl.doFilter(UapModuleContextFilter.java:182)
at com.sgcc.uap.kernel.web.server.UapModuleContextFilter.doFilter(UapModuleContextFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:740)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:964)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
... 60 more

...全文
2125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自渡     2021-04-06
  • 打赏
  • 举报
回复
sgcc 国网的吧
p1314520_zjb 2018-03-22
  • 打赏
  • 举报
回复
自己顶一个,都找了好久,问题还是没解决

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧