POI 在导出大量数据到response中的时候报socket错误(其实文件已经导出来了,数据量在21000左右,4列),请问大家是怎么解决的。
当数据量小的时候没有问题!错误信息如下。
workBook.write(outputStream);
outputStream.flush();
outputStream.close();
ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
2008-04-30 15:41:07,625 ERROR (org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manage].[default]:253) - Servlet.service() for servlet default threw exception
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:747)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:127)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at com.winkee.keyword.util.KeywordDownloadExcel.downloadKeyWord(KeywordDownloadExcel.java:97)
at com.winkee.keyword.web.KeywordAction.list(KeywordAction.java:190)
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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
分享到:
- 2008-04-30 15:44
- 浏览 3408
- 评论(2)
- 论坛回复 / 浏览 (0 / 4094)
- 查看更多
相关推荐
"使用POI导出大数据量到EXCEL"这个主题涉及到如何高效地利用POI处理大量数据并将其导出到Excel文件中。以下是对这个主题的详细讲解。 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了Java API来创建、...
### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,...无论是简单的数据导出还是复杂的报表生成,POI都能够提供相应的解决方案。希望本文能够帮助大家更好地理解和使用Apache POI。
4. **性能优化**:如果数据量较大,可以考虑分批读写,避免一次性加载大量数据导致内存溢出。同时,对于数据库操作,可以使用批量插入以提高效率。 5. **安全考虑**:在处理用户上传的Excel文件时,需要防止SQL注入...
本项目“poi多线程大数据导出excel文件”提供了一个解决方案,利用多线程来提高Excel的大数据导出效率。 Apache POI 3.1版本是较早的版本,而项目中使用了更新的4.1版本,这意味着它可能利用了更多优化和新特性。在...
poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取...此解决方案可支持千万数据的传输不报错
- 使用如JExcelApi、OpenCSV等其他第三方库,它们可能提供了更优化的数据导出方案,尤其是针对大数据量。 7. **优化Excel文件格式**: - 如果可能,可以考虑使用CSV格式代替Excel,因为CSV文件对内存的需求较低,...
在Java开发中,批量导出大数据量到...通过以上方法,开发者可以构建一个高效且健壮的Java批量导出大数据量到Excel的解决方案。具体实现细节可能在提供的excelproj和ExpXLS文件中有所体现,建议解压后仔细研究源代码。
### 使用Apache POI导出Excel 2007并避免内存溢出问题 #### 背景介绍 在处理大量数据时,使用Java导出Excel文件可能会遇到内存溢出的问题,尤其是在导出Excel 2007(.xlsx格式)时更为常见。这是因为传统的`...
在Java开发中,导出大数据量的Excel文件可能会面临内存溢出的问题,特别是在使用Apache POI库时。这是因为默认情况下,POI会将整个Excel工作簿存储在内存中,当数据量过大时,内存消耗非常显著,可能导致系统崩溃。...
Java多线程导出Excel是处理大数据量时的一种高效策略,尤其在面对千万级别的数据时。传统的Apache POI库在处理大规模数据时可能会遇到栈溢出(StackOverflowError)和内存溢出(OutOfMemoryError)等问题,因为这些...
标题中的“用Poi导出Excel表格数据”指的是使用Apache POI库来创建和操作Microsoft Excel文件的过程。Apache POI是Java领域一个广泛使用的库,它允许开发者读取、写入以及修改MS Office格式的文件,包括Excel。下面...
在Spring Boot应用中,Thymeleaf通常用于生成动态的Web页面,提供前后端分离的解决方案。 5. **Excel数据导入到数据库**: 使用Apache POI,我们可以解析Excel文件,获取工作表和单元格的数据。然后,通过MyBatis的...
Easy POI设计了流式写入和读取模式,非常适合处理大数据量的情况。流式处理不占用大量内存,因此在高并发环境下,它能有效地避免内存溢出。`EasyExcel.write(fileName).sheet().doWrite(data)`采用的就是这种模式,...
这个"java excel大数据量导出demo"提供了一个高效、灵活的解决方案,它支持模板导出,分页查询,以及处理大数据量的能力。在这个项目中,开发者采用了Apache POI库的SXSSFWorkbook子类,这是一个专门为处理大量数据...
在现代企业级应用开发中,数据的导入与导出功能是非常常见且重要的。SpringBoot结合Mybatis框架提供了高效...通过理解SpringBoot的自动配置、Mybatis的SQL映射以及POI的Excel操作,我们可以轻松地构建类似的解决方案。
总结,"poi导入导出Excel通用工具类 兼容xls,xlsx"这个工具实现了利用Apache POI库处理Excel文件的功能,涵盖了从旧版的.xls到新版的.xlsx格式,提供了方便的导入和导出接口,使得在Java开发中处理Excel数据变得...
- **高效性**:Easy-POI优化了Excel读写过程,减少了内存消耗,提高了处理速度,尤其适合处理大数据量的Excel文件。 - **易用性**:提供了简单直观的API,使得开发者可以快速上手,减少代码编写量,提高开发效率。...
在Java开发中,当需要处理大量的Excel数据时,POI库提供了高效且灵活的解决方案。标题提到的“POI导入excel大数据处理”是指利用Apache POI进行大量Excel数据的导入操作,同时它兼容Excel 2003(.xls格式)和2007...
5. **性能优化**:对于大数据量的Excel,使用SXSSF流式API可以避免一次性加载所有数据导致的内存问题。 6. **异常处理**:在导入导出过程中可能会遇到各种错误,如文件格式不正确、数据类型不匹配等,需要有完善的...