您的位置:首页 > 编程语言 > Java开发

POI导出文件报错 java.lang.RuntimeException: java.io.IOException: 系统找不到指定的路径。

2016-09-14 10:41 911 查看
问题:

项目部署在tomcat后,导出excel时报错,异常信息如下:

[ ERROR]:2016-09-11 13:18:43 [http-apr-8080-exec-2] MonitorCompanyController:149 - 导出动态监控公司列表失败!失败信息:java.io.IOException: 系统找不到指定的路径。
java.lang.RuntimeException: java.io.IOException: 系统找不到指定的路径。
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:637) ~[poi-ooxml-3.12-20150511.jar:3.12]
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:654) ~[poi-ooxml-3.12-20150511.jar:3.12]
at com.srd.ljzd.util.excel.ExportExcel.initialize(ExportExcel.java:190) ~[classes/:?]
at com.srd.ljzd.util.excel.ExportExcel.<init>(ExportExcel.java:171) ~[classes/:?]
at com.srd.ljzd.controller.monitor.MonitorCompanyController.exportMonitorCompanyList(MonitorCompanyController.java:111) [classes/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_67]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_67]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_67]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_67]
...


原因:

使用POI导出文件的时候,会在容器的临时文件夹中生成临时文件,如果临时文件夹不存在或者没有权限创建文件,那么就会提示IO错误。项目部署windows2008上面的tomcat中,因为权限原因导致无法再tomcat目录项目的temp文件夹中创建临时文件,所以报异常。

解决方案:

1,修改tomcat目录权限,给予系统可操作的权限;

2,修改tomcat临时文件夹的路径,保证新的文件夹有可操作的权限。在tomcat的bin目录下找到catalina.bat文件,在这个文件中有个-Djava.io.tmpdir的参数,是用来存放io临时文件的目录,默认为tomcat中temp目录,可以将其设置成自己有操作权限的文件夹,set CATALINA_TMPDIR=E:\temp;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐