概要
给定以下(删节的)代码,它位于 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我传递的对象,考虑到我传递的是文件的真实文件路径。我可以想出一些替代解决方案来解决这个问题,但现在我真的很好奇为什么它无法找到该文件。
提前感谢您的任何见解。