2

在我Jboss-EAP-6.1的部署中,.war'myRealWebApp.war' 可以使用此 url 访问我的应用程序 - http://mywebsite.com/myRealWebApp

我想'myRealWebApp'用多个上下文根配置我的 webapp。我的意思是如果我访问

http://mywebsite.com/appA
http://mywebsite.com/appB
http://mywebsite.com/appC

这 3 个上下文'appA', 'appB','appC'指向myRealWebApp.war(部署了一场战争)

反正我可以存档吗?

谢谢。

编辑: 找到的解决方案: 我将此代码添加到我的standalone-full.xml

   <subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" native="false">
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="true">
            <alias name="localhost"/>
            <alias name="example.com"/>
            <rewrite name="rule-1" pattern="^/appA(.*)$" substitution="/myRealWebApp$1" flags="L"/>
            <rewrite name="rule-2" pattern="^/appB(.*)$" substitution="/myRealWebApp$1" flags="L"/>
            <rewrite name="rule-3" pattern="^/appC(.*)$" substitution="/myRealWebApp$1" flags="L"/>
        </virtual-server>
    </subsystem>

关键是flags="L"

谢谢

4

2 回答 2

1

您可以通过在 jboss 前面配置一个 http 服务器(如 Apache 服务器)并使用重定向规则将所有其他 url 转换为您配置应用程序的 URL 来实现这一点。可能 jboss 也有一个用于集成的 apache 模块,但基本原理仍然存在。通常建议不要在生产中直接暴露 jboss 或其他应用服务器,而是在其前面使用 http 服务器(您可以从 http 服务器提供静态内容,可以平衡请求等)

于 2015-06-16T19:20:17.490 回答
0

添加到 OP 共享的解决方案中,这就是我为实现单个部署的多个上下文所做的工作。

在app/WEB-INF/jboss-web.xml中配置了一个上下文根

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>appA</context-root>
    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>
</jboss-web>

在jboss-eap/standalone/configuration/standalone.xml中添加rewrite规则:

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
    <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <alias name="example.com"/>
        <rewrite name="rule-1" pattern="^/appB(.*)$" substitution="/appA$1" flags="L"/>
        <rewrite name="rule-2" pattern="^/appC(.*)$" substitution="/appA$1" flags="L"/>
    </virtual-server>
</subsystem>
于 2017-03-21T09:02:53.923 回答