在Tomcat中创建文件的路径

时间:2014-07-07 17:38:08

标签: java xml file tomcat path

我创建了一个xml格式的网站设置文件,该文件的内容指定了网站标题,网址,元描述,管理员电子邮件等内容。

在我的Java代码中,我只是将文件定义如下:

private static final String webSettingFileName = "WebSettings.xml";

public void saveSetting()
{
    File settingFile = new File(webSettingFileName);
    // try-catch block to write the XML file omitted
}

在部署war文件后,我发现Web Setting xml文件已写入Tomcat bin文件夹,但是,我想将该文件写入Tomcat中webapps的ROOT文件夹中。所以我想知道如何在我的代码中指定文件路径。感谢

修改

因为Jarrod Roberson给了我一个红色-1的重复问题。我不同意他,因为我在发帖之前检查了这个帖子。我尝试了that post here中建议的方法,但它对我不起作用,因为我需要将Web设置文件永久保存在同一位置,无论Tomcat重启多少次(所以tomcat / webapps服务于我的目的) !)。该文件用于保存网站设置。另外,ServletContext似乎不适用于我用于webapp的Java 1.8。

编辑2:

这就是我最终使它发挥作用的方式:

private final static File catalinaBase = new File(System.getProperty("catalina.base")).getAbsoluteFile();
private static final String webSettingFileName = "WebSetting.xml"; 
private final static File file = new File(catalinaBase, "webapps/" + webSettingFileName); 

1 个答案:

答案 0 :(得分:1)

您可以使用方法ServletContext.getRealPath("/")来检索当前webapp的绝对文件系统路径,例如:

File settingFile = new File(getServletContext().getRealPath("/"), webSettingFileName);

请注意,这仅适用于展开(解压缩)的war文件。