我的 Web 应用程序的配置文件位于 \WEB-INF\etc\config
中。此文件夹包含一些属性文件和一个 xml。我需要在一个属性文件中设置 xml 的路径。设置此文件用于在服务启动期间创建对象后,此对象从文件中读取属性。因此,该对象必须知道属性文件中描述的所有文件的路径。如果属性文件和 xml 文件在同一目录中,我如何在属性文件中描述正确的路径?
谢谢。
最佳答案
通常的做法是将这些文件放在运行时类路径中或将其根路径添加到运行时类路径中。然后,您将能够通过 ClassLoader#getResource()
或作为 InputStream
通过 ClassLoader#getResourceAsStream()
获取资源。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("filename.xml");
您需要在属性文件中指定的是 XML 文件的完整限定名称(类路径位置)。
如果你真的坚持那样摆弄磁盘文件系统路径,那么你需要指定相对于网络内容的路径(/WEB-INF
所在的文件夹),然后使用 ServletContext#getResource()
或 ServletContext#getResourceAsStream()
获取资源。但是,这会添加对使用 XML 文件的代码的 ServletContext
依赖性。
关于java - 文件的 WEB-INF 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246963/