Apache 将修改后的属性文件保存在服务器上部署的WAR中
我们正试图在使用JSF和JBoss的项目中使用Apache PropertiesConfiguration 我的属性文件位于名为Prop1.prop的demo.prop包中 在我的WAR文件中,/WEB-INF/classes/demo/prop/Prop1.prop下也有相同的文件 使用 FacesContext.getCurrentInstance().getExternalContext().getResource(“/WEB-INF/classes/demo/prop/Prop1.prop”)强> 我能够获取属性文件。因此,当我尝试使用Apache 将修改后的属性文件保存在服务器上部署的WAR中,apache,jsf,properties,configuration,save,Apache,Jsf,Properties,Configuration,Save,我们正试图在使用JSF和JBoss的项目中使用Apache PropertiesConfiguration 我的属性文件位于名为Prop1.prop的demo.prop包中 在我的WAR文件中,/WEB-INF/classes/demo/prop/Prop1.prop下也有相同的文件 使用 FacesContext.getCurrentInstance().getExternalContext().getResource(“/WEB-INF/classes/demo/prop/Prop1.pro
PropertiesConfiguration pc1=new PropertiesConfiguration(a);
String s1=(String)pc1.getProperty("User_Name");
我能得到正确的字符串。使用set property方法,我也可以设置属性
pc1.setProperty("User_Name", "hardcodedString");
但我无法将文件保存回此位置。无论我做什么,都无法使用pc1.save保存文件
请告诉我如何将此文件保存回其原始位置,以便在属性文件中所做的更改保持原样。修改WAR文件是一个坏主意(例如,某些web服务器可能会注意到该文件) 修改或重新部署应用程序,服务器爆发部署战时可能会出现问题等。) 我建议采用另一种方法——一些可能性是:
因此,您试图保存放置在WAR存档中的“Prop1.prop”?除了有问题(因为WAR被压缩)之外,我认为这不是一个好主意。可能将修改后的属性保存到放置在可访问位置的另一个prop文件中,并加载两个文件(修改后的一秒钟)-因此,修改后的道具文件中的更改将覆盖原始文件。同意。我知道在战争中进行修改不是一个好做法。但我需要在不考虑的情况下进行修改。您还可以详细说明您提供的替代方案吗?在应用程序启动时,我正在使用Bundle读取道具文件。您建议我如何重新加载它..请注意:我仍然需要先从捆绑包加载,然后再从捆绑包加载。如果数据库不可用怎么办?仅出于这个原因,我更喜欢纯文本文件。易于连接、易于安装、易于加密、易于编辑、易于重新创建、易于迁移。这里有一些严重的帖子。总体而言,有些不错的建议,但Db有一些风险。没错,但我的建议基本上就是这样的#2。就像我说的,好的建议只是小心使用数据库“简单”用于少量配置的持久性存储。这取决于具体情况。我见过有人安装整个服务器,以便将配置数据存储在其中。现在,如果HA解决方案中需要很多配置,那么文本文件将有点原始。