我有一个struts2和hibernate应用程序。我打算做的是,如果数据库配置无效,我会从用户处收到它并使用更新的设置修改hibernate.hbm.xml。我能够检查并接收来自用户的设置,唯一的问题是domparser无法找到我的hibernate.cfg.xml。
String filepath = "hibernate.cfg.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
以普通用户身份部署应用程序时,我得到了这个
/home/uzumaki/hibernate.cfg.xml (No such file or directory)
当我以root身份运行时,
/hibernate.cfg.xml (No such file or directory)
使用File("").getAbsolutePath())
并与hibernate.cfg.xml结合也会给我带来同样的错误。
该文件当然不存在,它与我的java代码/类位于同一个文件夹中,随处可见(示例war文件)
答案 0 :(得分:0)
经过大量搜索后,我终于找到了一种在运行时获取应用程序实时路径的方法。如果有人需要,我会张贴这个。
HttpServletRequest servletRequest = ServletActionContext.getRequest();
String app_path;
app_path = servletRequest.getSession().getServletContext().getRealPath("/");
现在(在我的情况下)
String filepath = app_path + "WEB-INF/classes/hibernate.cfg.xml";