现在是北京时间2011年8月27日
在上个星期的工作中利用jxl将excel上传并解析到数据库中,但最终发现一个问题,每次上传新的excel可是解析的仍然是上一次上传的,这个确实愁死我了,这意味中我忙了近3个星期的工作就泡汤了,我开始一个个的测试,却又报出了一个数组越界的错误,晕,上个问题没解决又冒出个新问题,后来上网找资料,怀疑是excel过大的问题,我发现这次上传的excel中有6w多行,虽然很多都是空着的。这个问题算是解决了。怀疑是内存没有释放的问题,后来发现只要重新启动tomcat,程序就正常了,这个让我开始怀疑我的代码的问题,java不是自动回收垃圾内存的吗?我开始到处写System.gc()可还是没有效果,
InputStream is= ExcelImport.class.getClassLoader().getResourceAsStream("../../upload/pro.xls");
我觉得这个地方有问题了,虽然我对java的类加载的原理还不是很了解,但这个地方我的猜想是估计只在程序运行的时候加载一次,我想换个方法,但是在java类中获得webroot下得路劲好像也只有这个方法了。。。
算了,写个servlet类吧,
String path=request.getRealPath("/upload/pro.xls");
System.out.print(path);
InputStream is=new FileInputStream(path);
测试,终于问题得以解决了,心情豁然开朗啊,早上8点多起来的,10点开始工作,到1点半的时候问题才得以解决,编程真是不容易的啊。。。。。
有时候遇到错误,真得很无力,想到csdn论坛问,可是没积分了,想想周围的人把,又没有会的。
在一个非IT的公司从事着IT的工作,我不知道自己还能坚持多久,努力吧,告诫自己。。。。。