单战部署jboss-EAP-6.1的多个上下文根

时间:2015-06-16 18:42:21

标签: java jboss war jboss-eap-6 contextroot

在我的root我已部署了一个名为<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ property/happy_property_urls.php?lang=$1&city=$2&type=$3&status=$4&ref=$5 [NC,L,QSA] </IfModule> 的{​​{1}} 我可以使用此网址访问我的应用 - http://mywebsite.com/myRealWebApp

我想使用多个上下文根配置我的webapp Jboss-EAP-6.1。 我的意思是,如果我访问

.war

这3个上下文'myRealWebApp.war''myRealWebApp'http://mywebsite.com/appA http://mywebsite.com/appB http://mywebsite.com/appC 指向'appA'(部署了一个单一战争)

无论如何我可以存档吗?

感谢。

编辑: 找到解决方案: 我将此代码添加到'appB'

'appC'

关键是 flags =“L”

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>