为单个Web应用程序配置多个上下文根– JBoss

有时,我们通过在jboss-web.xm l中定义一个来对应用程序进行更改,以支持利用JBoss功能的多个上下文根,如下所示:

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

并在standalone.xml中的子系统之一的虚拟服务器中定义重写规则以支持其他上下文根,如下所示:

jboss-eap / standalone / configuration / standalone.xml:

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

我们很高兴进行上述配置更改,然后在今天将相同的配置推广到生产服务器的同时,团队又回到我们的手中,由于某些安全策略,它们无法在生产中使欢迎使用根目录成为“ true” ,如果我们将其设为“ false”不再支持多个上下文。

然后,我们开始寻找可用于虚拟服务器的不同配置选项来解决此问题,并发现我们必须使用“ /”上下文配置JBoss以支持其他上下文,并且由于我们的应用程序的上下文为“ / appA”没有可用的“ /”上下文,并且无法重写上下文。

然后,我们有两个立即修复方法:首先是将应用程序上下文重新定义为“ /” ,这需要更改.war文件;其次是在JBoss部署中删除另一个上下文上下文为“ /”的应用程序,并在团队处于生产部署的中间,我们无法在.war文件中进行更改,因此我们首先通过部署另一个上下文上下文为“ /”的 webapp选择了第二个选项。

翻译自: https://www.javacodegeeks.com/2017/05/configuring-multiple-context-root-single-webapp-jboss.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值