为了账号安全,请及时绑定邮箱和手机立即绑定

java在导出excel报表的过程中报错: Socket closed

java在导出excel报表的过程中报错: Socket closed

眼眸繁星 2018-12-06 16:56:32
并不是每一场导出excel都报错,只是偶尔。然后导出的excel表无法打开,也无法修复。 /**生成报表*/ String filename = "报表"+TimeUtil.getCurrentTime()+".xls"; try { filename = new String(filename.getBytes("GBK"), "ISO-8859-1"); } catch (UnsupportedEncodingException e) { logger.error("下载报表无效字符集"); } response.addHeader("Content-Disposition", "attachment;filename="+filename); response.setContentType("application/octet-stream"); OutputStream outputStream = null; try { outputStream = response.getOutputStream(); wb.write(outputStream);//------报错行-- outputStream.flush(); outputStream.close(); } catch (IOException e) { logger.error("下载报表异常:",e); }finally{ try { if(outputStream!=null){ outputStream.close(); } } catch (IOException e) { logger.error("下载报表流关闭异常"); } }   下面是报错信息: java.net.SocketException: Socket closed at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:99) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:568) at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:539) at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:427) at weblogic.servlet.internal.CharsetChunkOutput.flush(CharsetChunkOutput.java:298) at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:648) at weblogic.servlet.internal.CharsetChunkOutput.write(CharsetChunkOutput.java:200) at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:148) at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:148) at java.io.OutputStream.write(OutputStream.java:58) at org.apache.poi.poifs.storage.BigBlock.doWriteData(BigBlock.java:67) at org.apache.poi.poifs.storage.DocumentBlock.writeData(DocumentBlock.java:195) at org.apache.poi.poifs.storage.BigBlock.writeBlocks(BigBlock.java:98) at org.apache.poi.poifs.storage.DocumentBlock.writeBlocks(DocumentBlock.java:34) at org.apache.poi.poifs.filesystem.POIFSDocument$BigBlockStore.writeBlocks(POIFSDocument.java:547) at org.apache.poi.poifs.filesystem.POIFSDocument.writeBlocks(POIFSDocument.java:303) at org.apache.poi.poifs.filesystem.POIFSFileSystem.writeFilesystem(POIFSFileSystem.java:385) at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1232)
查看完整描述

4 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

其实就是网速太慢,response的时候,自动关闭了。

查看完整回答
反对 回复 2018-12-16
?
慕仙森

TA贡献1827条经验 获得超8个赞

@金琥: 唉,其实我知道是socket关闭的问题,但是就是不知道哪里什么时候关闭的?分析了代码,并没有发现什么,而且在生产上使用一直没有问题,恩,大概是两三个月出一次这样的问题,偶然性的,出现问题,重新下载又没事了

查看完整回答
反对 回复 2018-12-16
  • 4 回答
  • 0 关注
  • 853 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信