当前位置: 首页 > 知识库问答 >
问题:

将修改后的属性文件保存在服务器上部署的WAR中

卢晟
2023-03-14

我们试图在使用JSF和JBoss的项目中使用Apache PropertiesConfiguration。

我的属性文件位于一个软件包内,比如demo。prop的名称为Prop1。道具

在我的WAR文件中,/WEB-INF/classes/demo/prop/Prop1下也有同样的内容。道具

使用

FacesContext。getCurrentInstance()。getExternalContext()。getResource(“/WEB-INF/classes/demo/prop/Prop1.prop”);

我能够获取属性文件。因此,当我尝试使用

PropertiesConfiguration pc1=new PropertiesConfiguration(a);
                String s1=(String)pc1.getProperty("User_Name");

我能找到合适的字符串。使用set property方法,我也可以设置属性。

pc1.setProperty("User_Name", "hardcodedString");

但我无法将文件保存回此位置。无论我做什么,都无法使用pc1保存文件。拯救

请任何人告诉我如何将此文件保存回其原始位置,以便在属性文件中所做的更改保持原样。

共有1个答案

罗翰
2023-03-14

修改WAR文件是一个坏主意(例如,一些web服务器可能会注意到文件的修改并重新部署您的应用程序,当服务器爆发部署战时可能会出现问题等)

我建议采用另一种方法——一些可能性是:

>

  • 将属性放在数据库表中,以便可以轻松修改
  • 使用外部属性文件覆盖“Prop1.prop”文件设置。您可以按如下示例完成此操作。假设默认属性值捆绑在您的WAR中,修改后的值保存到其他路径,该路径使用系统属性定义——假设它称为CONFIG_LOCATION。现在,从捆绑包加载属性后,您还可以从这个外部“overrides.prop”文件中读取它们——这将覆盖“Prop1.prop”中的默认值:

    PropertiesConfiguration pc1=新的PropertiesConfiguration(a);try(FileReader propReader=新建FileReader(System.getenv())。get(“CONFIG\u FILES”)“/overrides.prop”){pc1.load(propReader);}

    当您需要保存更改时,您可以对“overrides.prop”执行此操作-这将保存所有属性,不仅是更改的属性,而且不会产生任何负面影响。

  •  类似资料:
    • 问题内容: 我已经将tomcat的webapps目录中的sample.war文件复制了。 我可以访问localhost:8080。 默认情况下,战争的部署是自动进行的-我已经在我的webapps文件夹中检查了提取的文件夹“ sample” 但未提取。为什么未提取war文件。请为此提供解决方案。 问题答案: 从目录中删除该战争文件。然后在您的Web浏览器中打开链接。单击“ Tomcat管理器”, 然

    • 我已经准备好了我的新Liferay网站,并试图在真实环境中进行测试。我刚刚成功地在服务器上安装了Tomcat Liferay捆绑包,并复制了。根据一些论坛和评论的指示,将war文件放入tomcat旁边的部署目录;但在访问URL后,我仍然会看到默认的Liferay页面,我的页面不会被显示。我在这里做错了什么? 提前谢谢!

    • 我习惯于在Tomcat上部署应用程序war文件,现在需要在非常紧迫的期限内使用Jboss EAP,所以没有太多时间学习。我看到主要的区别是,当我启动jboss实例时,war文件没有像Tomcat中那样被提取。Jboss只是在部署war文件中的内容。那么如何修改war文件中的文件呢?我是否需要为每次更改提取、更改和重新打包? 非常感谢。

    • 我需要在tomcat7部署战争文件...到目前为止我所做的是1。安装Tomcat7-启动并运行。能够看到索引页2。安装apache2-up并运行.成功地将80重定向到tomcat的8080端口。所有请求都被重定向到tomcat。3.现在我需要部署战争文件。 我的战争没有被发现,也没有扩大。没有日志。。未创建“mycompany”目录。 我检查了我的server.xml下面是代码 我错过了什么吗。。

    • 我们正在尝试上传名为demo_nfc.war的jsp servlet项目的war,但是在部署war文件时,我们得到了以下错误。 但是当我们用单个jsp文件部署war时,它就成功部署了。