我有一个带有\WEB-INF\etc\config配置文件的web应用程序。该文件夹包含几个属性文件和一个xml。我需要在一个属性文件中设置xml的路径。在服务启动期间设置此文件用于创建对象后,此对象将从文件中读取属性。因此,这个对象必须知道属性文件中描述的所有文件的路径。如果属性文件和xml文件在同一目录下,如何在属性文件中描述正确的路径?
谢谢。
发布于 2010-11-22 23:42:52
通常的做法是将这些文件放在运行时类路径中,或者将其根路径添加到运行时类路径中。然后,您将能够通过ClassLoader#getResource()获取资源,或者通过ClassLoader#getResourceAsStream()以InputStream形式获取资源。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("filename.xml");然后,您需要在属性文件中指定的就是XML文件的完全限定名(类路径位置)。
如果您真的坚持要修改磁盘文件系统路径,那么您需要指定web内容( /WEB-INF所在的文件夹)的相对路径,然后使用ServletContext#getResource()或ServletContext#getResourceAsStream()来获取资源。但是,这会在使用XML文件的代码上添加一个ServletContext依赖项。
https://stackoverflow.com/questions/4246963
复制相似问题