【问题标题】:env-entry values get lost when updating web application in WebSphere Application Server 7.0在 WebSphere Application Server 7.0 中更新 Web 应用程序时,env-entry 值会丢失
【发布时间】:2013-02-03 17:18:01
【问题描述】:

我有一个部署到 WebSphere Application Server 7.0 的 Web 应用程序 (*.war)。在部署描述符 (web.xml) 中,我使用<env-entry>-Tag 定义了几个环境条目。我可以使用管理控制台配置这些环境条目(更改/设置它们的值)。但是,当我将我的 Web 应用程序更新到新版本时(首先,我在应用程序列表中选中我的应用程序条目旁边的框,然后从提供的操作中选择“更新”)我配置的值已经得到lost 分别被部署描述符中定义的值覆盖。

这种行为是否正确并与 Java EE 规范同步?如果是,有没有办法防止这种情况?我有大约 10 个环境条目,每次安装都不同,每次更新到 Web 应用程序的新版本时重新配置它们很痛苦。

在 Apache Tomcat 6.0 中,我习惯于在 context.xml 中覆盖来自 web.xml 的环境条目。如果我使用新版本重新部署我的应用程序,该文件不会被覆盖。因此,我不必在每次部署新版本时重新配置我的应用程序。

【问题讨论】:

    标签: jakarta-ee websphere web.xml java-ee-5


    【解决方案1】:

    web.xml 文件中定义的值将始终覆盖您使用管理控制台或脚本修改的值。解决方案是:

    1. 从 web.xml 文件中删除值。第一次部署应用程序时,您需要设置这些值。但之后更新应用时,所有的值都不会被覆盖。

    2. 保留 web.xml 中的值并通过脚本部署(而不是通过管理控制台)。在这里,您可以在使用 -MapEnvEntryForWebMod 选项部署应用程序时设置这些值。

    【讨论】:

    • 你好布鲁诺。感谢您的回复。您是对的 - web.xml 中的值将始终覆盖您使用管理控制台定义的值。最好的方法可能是您提出的第二种解决方案:省略值。这样做的缺点是无法定义和显示默认值,但因为您只需要在可以接受的情况下配置这些值。问候!
    【解决方案2】:

    我记得在直接部署 WAR 文件时看到过类似的问题。相反,您应该构建一个包含 WAR 的 EAR,然后部署该 EAR。

    【讨论】:

    • 根据我的经验,我完全同意。更好地构建一个包含 WAR 的 EAR。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2011-09-12
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多