POI导出文件报错 java.lang.RuntimeException: java.io.IOException: 系统找不到指定的路径。
2016-09-14 10:41
911 查看
问题:
项目部署在tomcat后,导出excel时报错,异常信息如下:
原因:
使用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;
项目部署在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;
相关文章推荐
- java.io.IOException: 系统找不到指定的路径
- Log4J配置后, log4j:ERROR setFile(null,true) call failed. 报错:java.io.FileNotFoundException: /log/mytest2.log (系统找不到指定的路径。)
- java.io.FileNotFoundException: D:\workspace\gbrm\WebRoot\空缺职位列表20140414093026.xls (系统找不到指定的路径。)
- 如何解决java.io.FileNotFoundException: mysql.ini (系统找不到指定的文件。)
- 升级jdk8后系统报错解决:java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
- nested exception is java.io.FileNotFoundException: config.xml (系统找不到指定的文件。)
- Android 混淆提示 java.io.FileNotFoundException: ...\proguard-rules\release\aapt_rules.txt (系统找不到指定的路径)
- 解决java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, 系统找不到指定的文件 的错误
- log4j:ERROR setFile(null,true) call failed.java.io.FileNotFoundException: ..\logs\2010-1-19.log (系统找不到指定的路径。)
- java.io.FileNotFoundException: .\xxx\xxx.png (系统找不到指定的路径。)
- Android 混淆提示 java.io.FileNotFoundException: ...\proguard-rules\release\aapt_rules.txt (系统找不到指定的路径)
- 升级jdk8后系统报错解决:java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
- Jenkins java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
- Error:java.io.FileNotFoundException: 系统找不到指定的文件.
- java.io.FileNotFoundException关于使用Intellij Idea时系统找不到指定文件的解决方案
- java.io.FileNotFoundException: D:\Workspaces\MyEclipse 8.5\spring\applicationContext.xml (系统找不到指定的文
- 【已解决】Windows Service 问题System.IO.FileNotFoundException: 未能加载文件或程序集“file:///”或它 的某一个依赖项。系统找不到指定的文件。。
- java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
- 服务 在初始化安装时发生异常:System.IO.FileNotFoundException: "file:///D:\testService"未能加载文件或程序集。系统找不到指定文件。
- Java 文件操作 :系统找不到指定的路径