【问题标题】:How do I set up Jetty 6 & Jboss 4.0.5 virtual hosting?如何设置 Jetty 6 和 Jboss 4.0.5 虚拟主机?
【发布时间】:2010-10-25 15:56:30
【问题描述】:

我在同一个 JBoss/Jetty 服务器上部署了 2 个 webapp。在 Jetty 5.1.14 中,我有以下 jetty-web.xml,它将其中一个应用程序配置为作为虚拟主机(在同一端口上)运行:

<Configure class="org.jboss.jetty.JBossWebApplicationContext"> 
  <Call name="addVirtualHost"><Arg>app2.localhost.com</Arg></Call> 
</Configure>

这工作得很好。不幸的是,它根本不适用于 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>

但这也不起作用。这两个 webapps 部署没有错误,但是当我尝试访问虚拟主机名下的第二个应用程序时,它只是访问第一个应用程序。两个应用程序都在根上下文中(这是不可协商的)。

如何让虚拟主机工作?

(顺便说一句,几天前我有一个朋友在serverfault上发了这个,但没有人回答。)

【问题讨论】:

    标签: jboss jetty virtualhost


    【解决方案1】:

    如果您将它包含在每个 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>
    

    如果所有 webapps 在同一个容器中运行,它们都需要定义虚拟主机。出于某种原因,部署一个带有虚拟主机的 WAR 和一个没有虚拟主机的 WAR 不起作用。

    【讨论】:

    • 是的,我们发现这是一个错误(或从 Jetty 5 到 6 的功能更改),所有 web 应用程序都需要定义虚拟主机(如果其中一个有)。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 2020-07-17
    • 2018-07-04
    • 2015-10-06
    • 1970-01-01
    • 2013-07-16
    • 2013-03-15
    • 2014-07-15
    相关资源
    最近更新 更多