概要
给定以下(删节的)代码,它位于 servlet 的服务器端(Tomcat 是容器)。这是一个 GWT 应用程序,尽管这应该无关紧要(我认为)。
ServletContext context = getServletContext();
String dataFilePath= context.getRealPath("/WEB-INF/dir/dataFile.txt");
File dataFile = new File(dataFilePath);
TestCaseGenerator testCaseGenerator = new TestCaseGenerator(dataFile);
testCaseGenerator.generateTestCase();
TestCaseGenerator
是项目文件夹中 jar 中的一个类,war/WEB-INF/lib
已作为外部库添加到 GWT 项目中。
问题
当testCaseGenerator.generateTestCase()
被执行时,它无法用于dataFile
创建 a new LineNumberReader(new FileReader(dataFile));
, aFileNotFoundException
被抛出。
我已经验证了 的String
值dataFilePath
是正确的,并且包含我需要读取的服务器上文件的正确真实路径,dataFile
也不是null
. 我还验证了TestCaseGenerator
在此 GWT 应用程序之外从命令行调用时运行良好。
我不确定为什么TestCaseGenerator
不能使用File
我传递的对象,考虑到我传递的是文件的真实文件路径。我可以想出一些替代解决方案来解决这个问题,但现在我真的很好奇为什么它无法找到该文件。
提前感谢您的任何见解。