Tomcat docBase可以跨多个文件夹吗?

时间:2013-07-19 04:20:11

标签: tomcat tomcat6

如果这是一个糟糕的问题我很抱歉,但是我正在使用Windows,并且想要查看是否有办法通过Tomcat运行webapp,其中docBase是多个文件夹。

更多背景是我们的Eclipse项目设置方式是将Web内容分解为单独的文件夹。一个文件夹代表我们的SDK提供的内容,一个是具有SDK补丁的文件夹,第三个是项目特定的组件 - 最后两个文件夹中的任何一个都可以包含从前两个“擦除”项目的子文件夹/文件。 / p>

我想尝试将我的上下文文件指向我的开发环境,这样我就不需要构建/部署以查看我正在进行的更改。这可能吗?

其他一些说明:

  • 我们考虑过通过mklink使用符号链接,但如果简单,那就不想创建复杂性。
  • 这只是为了在本地运行,所以允许这么简单的黑客攻击。当我们创建部署到真实环境的WAR时,ANT脚本会创建一个Web根目录。

2 个答案:

答案 0 :(得分:3)

我这样使用它:

    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />
    <Context docBase="foobar"                path="/" />

具体上下文的重要性是path-attribute。请求从上到下进行处理。

因此,/css/default.css的请求仅从第3个上下文处理。

不同的订单可能会捕获不同的背景。

错误

    <Context docBase="foobar"                path="/" />
    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />

因为/css/default.css将被第一个上下文捕获,而不是第四个。

编辑2013-08-10: (不是答案作者)重要的是要注意虽然上述技术可行,但实际上大部分都是不正确。有关详细信息,请参阅注释。

答案 1 :(得分:3)

Tomcat可以为您完成此操作,您只需要一些额外的配置。

您正在寻找VirtualDirContext,它允许您指定extraResourcePaths的列表,该列表将按顺序搜索(按顺序)其他文件。您可以使用它来合并静态资源,JSP,JAR文件的目录等。

请记住,您添加的每个路径都会使每个文件查找可能需要更长时间 - 特别是如果根本找不到该文件。