具体的参数如下:
java.lang.OutOfMemoryError: Java heap space
at org.apache.poi.hssf.usermodel.HSSFWorkbook.getBytes(HSSFWorkbook.java:1184)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1118)
at jp.co.liveon.util.excel.ExcelEngine.download(ExcelEngine.java:179)
at jp.co.liveon.angelware.shift.employeeprint.logic.EmployeePrintPHLogic.excelOutput(EmployeePrintPHLogic.java:983)
at jp.co.liveon.angelware.shift.employeeprint.logic.EmployeePrintPHLogic.initExcel(EmployeePrintPHLogic.java:115)
at jp.co.liveon.angelware.shift.employeeprint.action.EmployeePrintPHAction.execute(EmployeePrintPHAction.java:82)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at jp.co.liveon.util.filter.EncodingFilter.doFilter(EncodingFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
有谁能帮解决一下;配置环境;eclipse3.1 + tomcat5.5.26 + java1.6;采用struts1.1.
poi-3.1-FINAL-20080629.jar操作excel;

解决方案 »

  1.   

    http://www.java2000.net/p2849
    比较详细
      

  2.   

    自己顶啦,csdn,看来真的不行啦,大家都说的一样,好像都不解决问题的
      

  3.   

    看看你的程序设计上有没有缺陷,对象有没有尽早设为null,有没有把几万个对象塞到一个List中
    实在不行就换一台内存大一点的机器
      

  4.   

    这个问题就有问题,怎么解决。
    Exception很简单,你的Heap内存不够了。单凭你这里的信息,大家没法知道是你的程序有问题,比如应该需要2M内存的,结果跑200M还没完,内存不够了。还是本来你的数据量就大,就是正常跑超出了。
    如果是第一种情况,那你调试一下看看了。如果是第二中情况,http://www.java2000.net/p2849 里面已经详细介绍如何设置Heap的Size了,改大一点看看。注意JVM的Heap的Size是有限制的:http://www.baizeju.com/html/Java/200806/04-10.html
      

  5.   

    改大了也是不可的,好像没有效果的,我真的有点郁闷拉。每个职员的一个月的出勤信息用一个sheet表示,用excel模板表示的,只是单纯地克隆模板,不读取任何数据,最多也就是150左右就崩溃,我就纳闷,为何我的TOMCAT5.5.26,非安装版本,在E:\Program Files\apache-tomcat-5.5.26\bin\catalina,设置大小一定用处都没有的。rem Guess CATALINA_HOME if not defined 下面加 set JAVA_OPTS=-Xms64m -Xmx512m 没有任何效果。溢出的时候,主要是下载的时候(excelengine.download(response, ExcelEngine.getExcelName(webUserId)){
    response.reset();
            response.setContentType(CONTENT_TYPE);
            response.setHeader(HEAD_NAME, HEAD_VALUE + fileName);
            os = response.getOutputStream();
            workbook.write(os);})
      

  6.   

    现在才发现在eclipse里的tomcat内存设置要在tomcat选项里去添加选项。不过,现在就是增大内存了,后台没有崩溃,前台由于数据很大,大约30多个职员的数据,大约四十多兆,主要是出勤的信息用线条表示的,就打不开excel啦,excel又崩溃拉。