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

xai*_*ain 1 java xml servlets properties file

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

代码是

XMLReader reader = XMLReaderFactory.createXMLReader();
...       
FileInputStream fis = new FileInputStream("myconf.xml");
reader.parse(new InputSource(fis));
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Bal*_*usC 5

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

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/myconf.xml");
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: