Jboss WildFly上下文转发

Jboss WildFly上下文转发,jboss,wildfly,Jboss,Wildfly,WildFly的默认安装仅为欢迎页面指定了根上下文 <subsystem xmlns="urn:jboss:domain:undertow:1.2" instance-id="main"> <buffer-cache name="default"/> <server name="default-server"> <http-listener name="default" socket-bin

WildFly的默认安装仅为欢迎页面指定了根上下文

    <subsystem xmlns="urn:jboss:domain:undertow:1.2" instance-id="main">
        <buffer-cache name="default"/>
        <server name="default-server">
            <http-listener name="default" socket-binding="http"/>
            <host name="default-host" alias="localhost">
                <location name="/" handler="welcome-content"/>
                <filter-ref name="server-header"/>
                <filter-ref name="x-powered-by-header"/>
            </host>
        </server>
        <servlet-container name="default">
            <jsp-config/>
            <websockets/>
        </servlet-container>
        <handlers>
            <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
        </handlers>
        <filters>
            <response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
            <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
        </filters>
    </subsystem>

我在/webapp上有可用的web应用,我希望它可以从root上获得

我同意转发,所以到目前为止我已经在欢迎内容中设置了它

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/webapp/"/>

我不同意将web应用程序从其上下文移动(例如直接移动到根目录)。此外,我想避免通过文件系统引用应用程序,因为现在已经这样做了

应该可以将默认文件处理程序替换为直接转发。有~url处理程序吗?也许可以在位置或其他方面指定相对地址?我很难找到这些东西的参考文档


编辑:发布后,您会看到令人不安的内容。如果您有EAR,只需在application.xml中将web模块的上下文根设置为“/”

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

webapp.war
/
2.如果您有WAR,需要在web.xml旁边添加jboss-web.xml,内容如下:

<jboss-web>
   <context-root>/</context-root>
</jboss-web>

/
编辑)3.您可以为默认主机设置默认web模块属性

<subsystem xmlns="urn:jboss:domain:undertow:1.1">
    <server name="default-server" default-host="webapp">
        <host name="default-host" alias="localhost" default-web-module="webapp.war">
        </host>
    </server>
</subsystem>

如果你想保持上下文,我知道有两种方法。您可以部署一个
ROOT.war
,只需一个页面即可转发。它不必被称为
ROOT.war
,但这是
/subsystem=undertow/server=default server/host=default host
的默认值。您可以将
默认web模块
属性更改为任意属性


另一个可能是错误的,但有效的选项是更改
$JBOSS_HOME/welcome content/index.html
页面。第一种方法可能更安全,因为它应该使升级更容易。

关于“我不同意将web应用程序从其上下文移动(例如直接移动到根目录)”,我的意思是我想将其保留在专用上下文中。在不重新部署或更改已部署的应用程序的情况下切换路由。是否尝试在拖曳子系统中设置?但这需要重新启动服务器。在谷歌搜索默认web模块(我不知道)后,我发现它解决了我接下来要问的问题。我提到我有转发功能,这是我索引中的一行。将它移动到ROOT.war不会改变很多方法-它不是“配置”,有点“脏”。