我正在努力将一些JSF代码从一个项目迁移到另一个项目,并且突然在我的新项目中ServletContext.TEMPDIR
值失败。我已经浏览了大部分文件,但这是唯一的错误,我不知道在哪里修复此问题。
不是tempdir
servlet上下文的一部分吗?
我起诉JSF和Spring btw。
答案 0 :(得分:1)
Servlet 3.0中的常量为introduced,它是Java EE 6的一部分。
您的问题表明您正在针对Servlet 2.5或更早版本编译代码,此常量为absent。
将编译/构建与目标运行时对齐,并确保在webapp /WEB-INF/lib
中没有任何特定于servlet容器的库。
或者,如果实际需要从Servlet 3.0降级到Servlet 2.5,那么将该常量替换为System.getProperty("java.io.tmpdir")
的结果:
File tempdir = new File(System.getProperty("java.io.tmpdir"));
另一种选择是使用File#createTempFile()
:
File tempfile = File.createTempFile(timeString, ".xlsx");