如何设置Jetty 6&;JBoss4.0.5虚拟主机?
我在同一JBoss/Jetty服务器上部署了两个WebApp。在Jetty 5.1.14中,我有以下Jetty-web.xml,它将其中一个应用程序配置为作为虚拟主机运行(在同一端口上):如何设置Jetty 6&;JBoss4.0.5虚拟主机?,jboss,jetty,virtualhost,Jboss,Jetty,Virtualhost,我在同一JBoss/Jetty服务器上部署了两个WebApp。在Jetty 5.1.14中,我有以下Jetty-web.xml,它将其中一个应用程序配置为作为虚拟主机运行(在同一端口上): app2.localhost.com 这工作做得非常好。不幸的是,它根本不适用于Jetty 6.1.17。首先,“JBossWebApplicationContext”现在似乎被称为“JBossWebAppContext”,其次,我可以找到的文档建议我应该使用一个jetty-web.xml,如下所示: &
app2.localhost.com
这工作做得非常好。不幸的是,它根本不适用于Jetty 6.1.17。首先,“JBossWebApplicationContext”现在似乎被称为“JBossWebAppContext”,其次,我可以找到的文档建议我应该使用一个jetty-web.xml,如下所示:
<Configure class="org.jboss.jetty.JBossWebAppContext">
<Set name="VirtualHosts">
<Array type="java.lang.String">
<Item>app2.localhost.com</Item>
</Array>
</Set>
</Configure>
app2.localhost.com
但这也不行。这两个webapp部署时没有错误,但当我尝试访问虚拟主机名下的第二个应用时,它只访问第一个应用。两个应用程序都在根上下文中(这是不可协商的)
如何使虚拟主机正常工作
(顺便说一句,前几天我有一个朋友在serverfault上发了这篇文章,但没有人回复。)如果你将它包含在每个web应用的jetty6-web.xml中,这个语法就可以工作
<Configure class="org.jboss.jetty.JBossWebAppContext">
<Set name="VirtualHosts">
<Array type="java.lang.String">
<Item>host1.domain.com</Item>
<Item>host2.domain.com</Item>
</Array>
</Set>
</Configure>
host1.domain.com
host2.domain.com
如果在同一容器中运行,则所有Web应用都需要定义虚拟主机。出于某种原因,部署一个带虚拟主机的WAR和一个不带虚拟主机的WAR是不起作用的。是的,我们发现这可能是一个bug(或者是Jetty 5到6的功能变化),如果其中一个存在,则所有Web应用都需要定义虚拟主机。
<Configure class="org.jboss.jetty.JBossWebAppContext">
<Set name="VirtualHosts">
<Array type="java.lang.String">
<Item>host1.domain.com</Item>
<Item>host2.domain.com</Item>
</Array>
</Set>
</Configure>