【问题标题】:WebDAV server-side implementation in TomcatTomcat 中的 WebDAV 服务器端实现
【发布时间】:2012-07-31 11:40:50
【问题描述】:

问题:我的任务是构建一个链接到本地​​根文件夹的基本 WebDAV servlet。目前,servlet 必须支持目录列表和 GET,以获取所需的文件。所有这些都必须遵循 WebDAV 协议。此外,必须在 Java 中完成,最好是在 Tomcat 下。

背景:到目前为止,我对 HTTP Servlet、Tomcat 等的接触非常有限,这就是我觉得这项任务相当困难的原因。虽然我了解 HTTP servlet 的工作原理,但我不明白如何从 HTTP servlet 转换到 WebDAV servlet。

方法:我的想法是扩展WebDAVServlet类(org.apache.catalina.servlets.WebdavServlet)并实现doPropfind方法和doGet方法。但是,在阅读了 WebDAVServlet 类之后,这些方法似乎已经实现了。如果是这种情况,我可以使用什么作为客户端来使用该功能(我可以以某种方式发送代表 HTTP 请求的 XML 文件,只是为了学习目的?)?然后,我应该扩展什么来构建我需要阅读的服务器。

简而言之:如果你必须建造我需要建造的东西,你会怎么做?你会扩展什么类等等。开始我发现的实际实现是最困难的事情。如果我要看到一个非常基本的 WebDAV servlet 示例,我相信我可以在此基础上构建,但目前我被卡住了,任何帮助,任何资源,任何链接都将不胜感激。

提前感谢您,对于菜鸟问题​​,我深表歉意。

【问题讨论】:

  • “如果你必须建造我需要建造的东西,你会怎么做?” - 我不会尝试重新发明轮子。找不到实现 WebDAV 的现有库/servlet 吗?

标签: http jakarta-ee tomcat servlets webdav


【解决方案1】:

Tomcat 提供开箱即用的 WebDAV 功能:您只需配置它们。

您应该阅读WebdavServlet 的文档。

如果您的要求是实现 WebDAV...安装 Tomcat 并正确配置它可以满足该要求。除非 Tomcat 的 WebdavServlet 不能满足您的需求,否则无需进行软件开发。

【讨论】:

  • 感谢您的回复。我也被困在这里。这是我所做的: 1)在 Eclipse 中创建了一个新的动态 Web 项目 2)编辑 web.xml 并在链接中添加了所需的内容 3)将项目导出为 war 文件,并将其放在 webapps 文件夹中 4)试图通过apache运行它,它说资源不可用。之后,我计划将localhost/WebDAV 映射为WebFolder(在Windows 中),但我之前肯定做错了什么。我应该只是编辑 $TOMCAT_HOME/conf 中的 web.xml 吗?另外,我如何指出我们的哪个文件夹将是“存储库”?
  • WebDAV 是我的项目的名称顺便说一句(我说我会将 localhost/WebDAV 映射到 WebFolder)。再次,比你的耐心,我意识到我的问题非常愚蠢......
  • 不要编辑$TOMCAT_HOME/conf/web.xml:而是在您自己的项目中编辑web.xml 文件。您不能选择将成为“存储库”的目录:webapp 本身成为存储库。您可能希望将 WebdavServlet 与 Tomcat 7 的虚拟路径别名结合起来,看看是否可以挂载一个完全不同的目录。
  • 现在不会使事情复杂化,所以我将保留存储库原样。但是,按照您提供的链接中的说明进行操作后,我尝试将 webapp 文件夹映射到 WebFolder。于是我去网上邻居,选择“添加网上邻居”写localhost:8080/WebDAVTest/for地址,我收到以下信息:“您输入的文件夹似乎无效。请选择另一个。”关于为什么会发生这种情况的任何想法?再次感谢您的帮助。
  • 我已经更新了“Web 文件夹的软件更新 (KB907306)”,因为它被认为是导致此错误的原因之一,但这并没有改变我的情况。
猜你喜欢
  • 2011-02-09
  • 1970-01-01
  • 2018-05-19
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2015-08-07
相关资源
最近更新 更多