在我目前的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
中的值,请在此处留言;)
答案 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
进行部署。请参阅properties,profiles。
答案 1 :(得分:0)
由于javax.faces.PROJECT_STAGE
参数的默认值为Production
,我将从web.xml
中删除此上下文参数,以便它在实时服务器上为Production
,对于开发环境(实际上是GlassFish v3),我将context-param添加到默认的web.xml中。由于应用程序参数覆盖全局参数,我认为这是最基于标准的方式。