在JBoss AS 6中部署期间或之后覆盖web.xml中的context-param的方法

时间:2011-04-29 07:09:20

标签: jsf deployment jboss web.xml jboss6.x

在我目前的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条目?


更新:我发现this article解释了JBoss AS5 deployers目录中的文件。作者写道:

  

有时你想要一个   配置应用于所有Web   应用程序,JBoss具有全球性   这些文件的版本是   位于部署者目录

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

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

2 个答案:

答案 0 :(得分:2)

如果您使用的是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进行部署。请参阅propertiesprofiles

答案 1 :(得分:0)

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