jxl web导出excel,tomcat报错!!!在线等

syjava 2008-05-14 03:04:37
测试程序如下,数据库90000+ 数据 程序可以顺利运行,
把代码放到action中报错:
那位指导下是什么错误,在线等
package com.Hibernate.test;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;

import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.util.HibernateUtil;

public class excel {
public static void main(String[] args) {

int pageNo; // 当前页码
int pageSize = 60000; // 每页记录数
int total; // 总记录数
int Size;

Session ssession = HibernateUtil.currentSession();
Transaction tx = ssession.beginTransaction();
SQLQuery qu = ssession
.createSQLQuery(" select t.a,t.b,t.c,t.id from test t order by t.id desc");
qu.addScalar("a", new org.hibernate.type.StringType());
qu.addScalar("b", new org.hibernate.type.StringType());
qu.addScalar("c", new org.hibernate.type.StringType());
qu.addScalar("id", new org.hibernate.type.StringType());
total = qu.list().size();
pageNo = total / pageSize + 1;
try {
System.out.println("begin");
String targetfile = "E:/outtest.xls";
WritableWorkbook workbook;
OutputStream os = new FileOutputStream(targetfile);
workbook = Workbook.createWorkbook(os);

for (int x = 1; x <= pageNo; x++) {
//int x = 1;
int num = pageSize * x;
if (num > total) {
Size = total - (pageNo - 1) * pageSize;
} else {
Size = pageSize;
}
System.out.println("Size=" + Size + "~~~");
System.out.println("pageNo=" + pageNo + "~~~");
System.out.println("total=" + total + "~~~");
System.out.println("(x - 1) * pageSize=" + (x - 1) * pageSize
+ "~~~");
qu.setFirstResult((x - 1) * pageSize);
qu.setMaxResults(Size);
List list = qu.list();
System.out.println("list.s=" + list.size() + "~~~");
Iterator its = list.iterator();

String worksheet = " " + (x - 1) * pageSize + "--" + ((x - 1) * pageSize + Size);
WritableSheet sheet = workbook.createSheet(worksheet, x - 1);
System.out.println(worksheet);
jxl.write.Label label;
int j = 0;
while (its.hasNext()) {

Object[] row1 = (Object[]) its.next();
for (int i = 0; i < row1.length; i++) {
label = new jxl.write.Label(i, j, (String) row1[i]);
sheet.addCell(label);
}
j++;
}
}
workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("end");

tx.commit();
HibernateUtil.closeSession();
System.out.println("enddsf");
}
}
-----------------------------------------------------
把代码放到action中报错:
--------------------------------------------------------------------------------------------------
javax.servlet.ServletException: Servlet execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:275)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.util.UserRightFilter.doFilter(UserRightFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:104)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:104)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
...全文
414 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenghongx 2008-05-16
  • 打赏
  • 举报
回复
LZ是不是用了过滤器~~是的话先保证过滤器运行没问题~~然后在错误页面多刷几次看看能不能转到其他报错页面上~~在程序中插日志记录或输出模拟断点~~在tomcat环境中看运行情况判断问题出现点~~
syjava 2008-05-16
  • 打赏
  • 举报
回复
tomcat->configure ->jdk -> jvm agr 添加 -server -Xms512m -Xmx512m
syjava 2008-05-16
  • 打赏
  • 举报
回复
问题解决了
syjava 2008-05-16
  • 打赏
  • 举报
回复
Servlet.service() for servlet action threw exception
java.lang.OutOfMemoryError: Java heap space
at jxl.write.biff.MemoryDataOutput.write(MemoryDataOutput.java:72)
at jxl.write.biff.File.write(File.java:149)
at jxl.write.biff.RowRecord.write(RowRecord.java:276)
at jxl.write.biff.SheetWriter.write(SheetWriter.java:464)
at jxl.write.biff.WritableSheetImpl.write(WritableSheetImpl.java:1431)
at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:915)
at com.struts.action.TestexcelAction.execute(TestexcelAction.java:113)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:104)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:104)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
浴火_凤凰 2008-05-16
  • 打赏
  • 举报
回复
学习.......
syjava 2008-05-14
  • 打赏
  • 举报
回复
up
syjava 2008-05-14
  • 打赏
  • 举报
回复
up
syjava 2008-05-14
  • 打赏
  • 举报
回复
up
内容概要:本文详细描述了机械零件Part4的设计与建模过程,重点围绕三维建模中的几何构造操作展开。首先基于原零件三视图确定关键尺寸,依次创建多个同心圆柱体结构,包括外层圆柱体(52、52、5)、中间圆柱体(25、25、7)以及中心孔结构(16、16、12)。随后对底部圆柱体进行临时加高处理,以便在顶面草绘中构建辅助图形:以计算得出的半径17.5画圆,并在其接触面上方绘制半径为3的小圆,进而引出两条分别成60°和-60°的斜线,配合一条水平线形成三角形轮廓。接着在其余两角复制相同的小圆结构,清理多余线条后完成草图设计。利用该草图执行“拉伸切除”操作,深度设为16.28mm,实现特征开槽。最后将底部圆柱体恢复原始高度5mm,完成整体结构修改。; 适合人群:具备基础CAD建模能力的机械设计人员或工科类学生;熟悉SolidWorks、AutoCAD等三维设计软件的操作者;从事零部件逆向设计或结构优化的技术人员。; 使用场景及目标:①用于学习复杂零件的分步建模方法,掌握从三视图到三维实体的转换技巧;②理解拉伸、切除、草图约束、包围盒设置等核心建模命令的实际应用;③提升对尺寸链计算、辅助线构建及几何关系控制的理解与实践能力。; 阅读建议:建议结合文中参数逐步在建模软件中复现操作,重点关注草图绘制逻辑与切除特征的关联性,注意各步骤间的顺序依赖关系,避免因尺寸或约束错误导致建模失败。

24,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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