在我的Jboss-EAP-6.1中,我部署了一个名为'myRealWebApp.war'的.war,我可以使用这个url - http://mywebsite.com/myRealWebApp访问我的应用程序。
我想用多个上下文根配置我的webapp 'myRealWebApp'。我是说如果我能
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"
谢谢
发布于 2015-06-16 19:20:17
您可以通过在jboss (像Apache服务器)前面配置一个http服务器,并使用重定向规则将所有其他urls转换为您配置应用程序的urls来实现这一点。也许jboss也有一个用于集成的apache模块,但基本原则仍然是这样。通常,这是一种重新推荐的方式,不是在生产中直接公开jboss或其他应用程序服务器,而是使用前面的http服务器(您可以从http服务器提供静态内容,可以平衡请求等等)。
发布于 2017-03-21 09:02:53
添加到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>https://stackoverflow.com/questions/30875657
复制相似问题