【问题标题】:Specify root context for web application in wildfly 8 at deployment在部署时在 Wildfly 8 中指定 Web 应用程序的根上下文
【发布时间】:2014-07-29 18:51:24
【问题描述】:

是否可以在部署时覆盖 WEB-INF/jboss-web.xml 中指定的根上下文?

我有这个 jboss-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>my-context</context-root>
</jboss-web>

并且我希望能够部署具有不同根上下文的应用程序,例如/another-context 用于我的一些环境,但在其他环境中保留 /my-context。

【问题讨论】:

  • 将war文件符号链接/重命名为ROOT.war会覆盖来自jboss-web.xml的上下文并部署到根上下文(/)。 Wildfly 是否具有与 --contextroot 类似的功能,以便 Glassfish 能够设置除 root 之外的其他上下文?

标签: java jakarta-ee jboss wildfly


【解决方案1】:

您可以通过 WildFly Maven Plugin(作为 CI 工作的一部分)或使用 WildFly CLI 来完成此操作。

maven 变体类似于以下命令:

org.wildfly.plugins:wildfly-maven-plugin:deploy-only
    -Dwildfly.deployment.filename=app.war 
    -Dwildfly.deployment.runtime.name=appcontext.war

应用将部署在 /appcontext 下。

注意,你应该从你的 jboss-web.xml 中删除 context-root 否则这个值将永远获胜。

CLI 变体可能看起来像 (documentation):

[dply@as wildfly-8.2.0.Final]$ bin/jboss-cli.sh 
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect
[standalone@localhost:9990 /] deploy /path/to/app.war --runtime-name=appcontext.war

【讨论】:

    【解决方案2】:

    为此,您可以结合 maven 配置文件(例如“my-context”和“another-context”)和 maven 资源过滤,如下所述:Maven resource filters

    一切都按预期工作肯定需要一点时间。

    【讨论】:

      【解决方案3】:

      如果你有一个 EAR 文件,你需要在你的 application.xml 中定义它

      <module>
        <web>
           <web-uri>webapp.war</web-uri>
           <context-root>/my-context</context-root>
        </web>
      </module>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-20
        • 1970-01-01
        • 1970-01-01
        • 2020-07-10
        相关资源
        最近更新 更多