并不是每一場導(dǎo)出excel都報錯,只是偶爾。然后導(dǎo)出的excel表無法打開,也無法修復(fù)。
/**生成報表*/ 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("下載報表流關(guān)閉異常"); } }
?
下面是報錯信息:
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)
添加回答
舉報
0/150
提交
取消