[img]http://dl.iteye.com/upload/attachment/0066/4740/2296f50e-9dbd-33d5-b032-cf32c6dc8323.jpg[/img]
try{
FileInputStream fis = new FileInputStream(xlsxFilePath);
XSSFWorkbook book = new XSSFWorkbook(fis);// 出错行
}catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(null != fis)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
当程序在main方法中测试时,可以正确的执行。
但是通过web方式发布、访问,在页面上浏览文件、提交,当程序执行到
XSSFWorkbook book = new XSSFWorkbook(fis);
时,就出错了,而后台没有报任何错误,并且没有进入catch块,直接进了finally。
悬赏分提高了,各位兄弟们!(40分呀!)
把你工程下的lib贴出来
Caused by: java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook
额,这句说明了问题
首先通过xlsxFilePath 在服务器上找下 是否有这个文件,一般通过本地上传文件到服务器上,需要将本地文件存在服务器上的,否则根据路径在服务器上是找不到这个文件的,何谈读取呢
在你的部署项目的根目录下找下xlsxFilePath,应该是这的问题
假如 你用的是tomcat,项目部署在E:\tomcat\webapps\XX项目,在这下面 你尝试下 读取一个路径为 D:\XXX.xls,你看下是否能读取?路径的问题了
还没认真看问题,你是说,在main下都正常
在服务器上,2003 ok 07不ok
而且你的服务器和文件是同一台机器对吗
你有上传文件吗? 还只是上传了文件的路径
至于不执行catch直接跳到finally
只有一种可能,那就是,产生的是一个Error而不是一个Exception
因为Error和Exception都继承与throwable
至于原因,请听下回分解咯~ 哈哈,我也看些资料
感觉最可能的还是NoClassDefFoundError
再加个catch(Error er) 然后断点看看,是什么错误
奇怪的是,怎么控制台什么都没显示呢
假如以上猜测正确
http://apache-poi.1045710.n5.nabble.com/XSSFWorkBook-is-not-in-poi-3-6-jar-td2311582.html
http://topic.csdn.net/u/20091228/15/be308a37-ac53-4ad6-8d6f-ed628cc0fe5f.html
这两个链接看看,因为XSSF和HSSF 不同,它还需要
poi-ooxm
poi-ooxml-schemas
的支持
呵呵~ 好吧 希望对你有帮助
那你看看是抛出什么error
java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook
亲,很明显了~ 和我猜的一样,就是包的问题
请再次检查你引入的包是否完全~