在JBoss AS 6中部署期间或之后覆盖web.xml中的上下文参数的方法



在我当前的JSF 2项目中,web.xml中的一个设置是

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

在JBoss AS中部署时,其值应该设置为Production而不是Development

在部署期间或之后是否有简单的方法来覆盖或修改此web.xml条目?


更新:我发现了这篇文章,其中解释了JBoss AS5 deployers目录中的文件。作者写道:

有时候你需要配置应用于所有web应用程序,JBoss有全局这些文件的版本是位于部署者目录

因此,对于web.xml的全局级配置,可以使用文件deployers/jbossweb.deployer/web.xml。我将检查这些文件是否可以覆盖值或仅将值添加到应用程序级web.xml

如果您知道deployers/jbossweb.deployer/web.xml是否覆盖了应用程序级别web.xml中的值,请在这里留言;)

如果您正在使用Maven,您可以执行web.xml的过滤副本,并从属性文件设置值。例子:

<properties>
    <stage.dir>Development</stage.dir>
</properties>
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

并为每个配置文件设置不同的值,因此您只需使用mvn goal -P production进行部署。

由于javax.faces.PROJECT_STAGE参数的默认值是Production,我将从web.xml中删除此上下文参数,因此它将是实时服务器上的Production,对于开发环境(实际上是GlassFish v3),我将上下文参数添加到默认的web.xml中。由于应用程序参数覆盖全局参数,我认为这是最基于标准的方法。

最新更新