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