我无法从我的servlet正确加载文件xml: 这就是代码:
try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("db.xml");
} catch (Exception ex) {
ex.printStackTrace();
out.print("File Not Found!");
}
db.xml位于包含类和java文件的classes文件夹中...
答案 0 :(得分:3)
您需要使用getResourceAsStream()
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(getClass().getResourceAsStream("db.xml"));
} catch (Exception ex) {
ex.printStackTrace();
out.print("File Not Found!");
}
答案 1 :(得分:1)
如果您在war文件的根文件夹中有XML文件,则可以使用real path对上下文应用程序文件夹进行阅读。
String contextPath = request.getSession().getServletContext().getRealPath("/");
另一方面,您可以使用context class loader in a multi-module environment:
ClassLoader classloader = Thread.currentThread().getContextClassLoader()
Document doc = db.parse(classloader.getResourceAsStream(contextPath+ "/db.xml"));
在某些环境中,不需要额外的斜杠。