web java app中的xml属性文件位置

时间:2010-09-13 21:21:18

标签: java xml file servlets properties

我在java中有一个Web应用程序,在servlet中我需要从xml文件加载属性。

代码是

XMLReader reader = XMLReaderFactory.createXMLReader();
...       
FileInputStream fis = new FileInputStream("myconf.xml");
reader.parse(new InputSource(fis));

我的问题是:myconf.xml文件放在war文件中应该放在哪里,以便servlet可以找到它?

由于

1 个答案:

答案 0 :(得分:5)

不要将FileInputStream与相对路径一起使用。您将依赖于当前工作目录,您无法完全控制Java代码。而是将文件放在类路径中并使用ClassLoader#getResourceAsStream()

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/myconf.xml");

此示例期望文件位于类路径的根目录中。从IDE角度来看,这可以是src文件夹的根目录或/WEB-INF/classes文件夹的根目录。您甚至可以将其放在外部的其他位置,并将其(绝对!)路径添加到服务器配置中某处的运行时类路径中。

另见: