WildFly上下文转发

时间:2015-03-04 20:29:20

标签: 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-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上有网络应用程序,我希望它可以从root获得。

我转发正常,所以到目前为止,我已将其设置为欢迎内容。

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

我不能让网络应用程序从其上下文移动(例如直接转到root)。此外,我还想避免通过文件系统引用应用程序,因为现在已经完成了。

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

编辑:发布后你看到令人不安的东西

2 个答案:

答案 0 :(得分:5)

1.如果您有EAR,则需要在application.xml中将web模块的context-root设置为“/”。

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

2.如果你有WAR,你需要在web.xml旁边添加jboss-web.xml,内容为:

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

EDIT )3。您可以为default-host设置default-web-module属性

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

答案 1 :(得分:1)

如果你想保持上下文,你有两种我所知道的方式。您可以使用仅转发的单个页面部署ROOT.war。它不必被称为ROOT.war,但这是/subsystem=undertow/server=default-server/host=default-host的默认值。您可以将default-web-module属性更改为任何内容。

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