在RUNTIME期间查找同一目录中的文件路径

时间:2015-06-22 11:58:32

标签: java hibernate jsp servlets domparser

我有一个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文件)

1 个答案:

答案 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";