【发布时间】:2014-08-28 06:50:55
【问题描述】:
我创建了一个 xml 格式的网站设置文件,该文件的内容指定了网站标题、url、元描述、管理员电子邮件等内容。
在我的 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 中建议的方法,但它对我不起作用,因为无论 Tomcat 重启多少次,我都需要将 Web 设置文件永久保存在同一位置(所以 tomcat/webapps 符合我的目的!) .该文件用于保存网站设置。此外,ServletContext 似乎在我用于我的 web 应用程序的 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);
【问题讨论】:
-
你试过给它一个绝对路径吗?
-
这两个都不是好主意。您应该在应用程序的 WAR 文件中包含它,而不是 Tomcat ROOT。
-
是的,将文件写入 WAR 文件是一个更好的主意,但不知道该怎么做。我应该在代码中放置类似 {Context}/webSettingFileName 的东西吗?