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

发布于 2024-11-03 20:53:40 字数 874 浏览 1 评论 0原文

在我当前的 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 目录。作者写道:

有时候你想要一个 适用于所有网络的配置 应用程序,JBoss 拥有全球 这些文件的版本是 位于部署者目录中

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

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

In my current JSF 2 project, one setting in the web.xml is

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

And its value should be set to Production instead Development on deployment in JBoss AS.

Are there simple ways to override or modify this web.xml entry during or after deployment?


Update: I found this article which explains the files in JBoss AS5 deployers directory. The author writes:

There are times when you want a
configuration to apply to all web
applications, JBoss has global
versions of these files which are
located in the deployers directory

So for a global-level configuration of web.xml, the file deployers/jbossweb.deployer/web.xml can be used. I will check if these files can override values or only add values to the application-level web.xml

If you know if deployers/jbossweb.deployer/web.xml overrides values in the application level web.xml, please leave a message here ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

内心荒芜 2024-11-10 20:53:40

如果您使用 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 进行部署。请参阅 属性个人资料

If you are using Maven you can do a filtered copy of web.xml and set the values from a properties file. Example:

<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>

And set different values per profile, so you just have to deploy with mvn goal -P production. See properties, profiles.

为你拒绝所有暧昧 2024-11-10 20:53:40

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

As the default value of the javax.faces.PROJECT_STAGE parameter is Production, I will remove this context-param it from the web.xml so it will be Production on the live servers, and for the development environment (which is actually a GlassFish v3) I add the context-param to the default web.xml. As application parameters override global parameters, I think this is the most standards based way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文