0

在我的应用程序中,我正在读取 WebContent/META-INF 文件夹中的 XML 文件(比如 ABC.xml),并使用 DOM 解析器对其进行解析,如下所示

File xmlFile = new File("WebContent//META-INF//ABC.xml");
parser.parse(new InputSource(new FileReader(xmlFile.getAbsolutePath())));

它的显示文件未找到异常,当我打印 xmlFile.getAbsolutePath() 它的显示

D:\Softwares\SDE_7\eclipse\WebContent\META-INF\ABC.xml

这是我的 Eclipse 设置所在的位置

所以我尝试在简单的java程序中使用相同的逻辑并打印显示正确路径(项目文件夹结构)的绝对路径并且程序运行良好

D:\GME_WorkSpace\Practice_1\WebContent\META-INF\sample.xml

为什么会出现这种冲突?我该如何纠正它?

4

2 回答 2

1

如果您在谈论 WebContent,听起来您已经编写了一个 Servlet。

在这种情况下,您应该使用 ServletContext 来查找您的文件。

getServletContext().getRealPath(...) 将获取 Servlet 中相对文件名的完整操作系统路径。

可以从任何继承自 HttpServlet 的类调用 getServletContext()。

于 2013-03-15T12:21:01.080 回答
0
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("WebContent//META-INF//ABC.xml");
File file = new File(url.toURI());
于 2013-03-15T11:21:08.800 回答