获取当前动态 Web 项目的路径 JAVA

Getting the path to current dynamic web project JAVA

如何在我的应用程序已部署时访问 XML 文件?

我是 运行 一个具有多个 classes 和一个简单的 rest 服务的动态 Web 应用程序,但我没有任何实际的 servlet,因此无法访问 ServletContext,(据我所知)所以使用 getRealPath() 是行不通的。

一个例子: 我有一个连接到数据库的 class DBcon,但必须从位于 /xml/db/oracle-properties.xml

的 XML 文件加载属性

在普通的 Java 项目中,您可以简单地使用文件输入流,但它不适用于动态 Web 应用程序。

我怎样才能加载 xml 文件?

如果文件在类路径中,您可以通过如下方式将其作为输入流获取:

InputStream in = this.getClass().getResourceAsStream("xml/db/oracle-properties.xml");

我读了这篇文章明白了:Where to place and how to read configuration resource files in servlet based application?

我已将 xml 文件放入 WEB-INF/classes,然后使用此代码加载它:

InputStream xmlFile = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
    prop.loadFromXML(xmlFile);