【问题标题】:How to show directory structure of server using Tomcat?如何使用 Tomcat 显示服务器的目录结构?
【发布时间】:2014-01-09 07:59:56
【问题描述】:

我希望用户通过托管在同一服务器上的 Tomcat 上的网络应用程序访问我服务器上的 /shared 文件夹。 我尝试了以下解决方案,但都没有奏效。

  1. 将上下文条目放入 server.xml
    <Context path="/shared" docBase="/shared/" reloadable="true" crossContext="true"/>

  2. 将相同的上下文信息放在Tomcat内部的/conf/context.xml中。

  3. 将相同的上下文信息放在我的 webapp 下的 /META-INF/context.xml 中。

但是当我尝试使用http://{myserverip:portnumber}/shared 访问它时,它返回一个404 Error

Tomcat 版本:7 服务器操作系统:Ubuntu 12.04

有什么建议吗?

【问题讨论】:

标签: java jakarta-ee tomcat


【解决方案1】:

你需要做两件事,我不会推荐这个解决方案,除非它是你想要共享和列出你的目录的本地开发服务器。

首先,在 /conf/catalina/ 下创建一个 shared.xml,其中包含

<Context path="/shared" docBase="/shared/"/>

其次(我不推荐这一点)您必须在 Tomcats 的 conf/web.xml 下启用目录列表 - 查找 DefaultServlet 并将列表更改为 true

这会影响 Tomcat 服务器上的所有 Web 应用程序

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

为了更精细的控制,您可以在您的个人网络应用程序 Web.xml 中覆盖它,但从您的场景来看,我不确定您是否有一个。

另见How can I list all the files in folder on tomcat?

【讨论】:

  • 感谢您的回复。我的实际要求是“向用户提供一个 URL 以查看文件,但这些文件不应该被其他用户访问”。最终用户会将该 url 放入一个小程序中,该小程序将为该 url 上托管的文件创建 3D 可视化。我找不到任何解决方案。
  • 我实现了第一个解决方案,但它不起作用。第二件事我不能做,因为 Tomcat 上托管了一个应用程序。
  • 那是完全不同的。您需要小程序访问给定文件的 Tomcat URL(使用完整 URL,而不是目录列表)和 servlet 以在给定 URL 上流式传输文件 - 具有安全控制。你根本不需要目录结构
  • 是的,这就是我需要做的。但是如何将文件流式传输到特定的 Url?如果您提供一个开始的链接,那就太好了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多