上一篇帖子“WebDav的java客户端开发包:sardine”中说到,对于开发WebDav客户端
sardine是一个很好的选择,但sardine并未实现WevDav的全部规范,所以我又试了试
apache的Jackrabbit,这个是已退休的slide的替代品。
Jackrabbit中的WevDav客户端只是一个附带的模块,并不是Jackrabbit的主要功能,
所以关于开发的文档很少,我只找到一篇:
http://wiki.apache.org/jackrabbit/WebDAV
我是下载的jackrabbit-standalone-2.0.3.jar包,其中应该大部分类都用不到,不过
我没找到单独的WebDav客户端的包。
演示程序的主要处理就是创建了一个目录,然后上载了jpg文件,最后列出了创建目录
中的内容。其中创建目录要用MkCol命令,上载用Put命令,列出目录内容其实是列出
指定路径下的所有属性。我没有仔细研究过WebDav的规范,估计jackrabbit是按照规范
实现的,需要理解WebDav的规范才能很好地使用,sardine则要接近对WebDav的一般性
理解,不需要理解相应的规范就可以快速地开始使用。
下面就是我的演示程序代码:
package test;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.MultiStatusResponse;
import org.apache.jackrabbit.webdav.client.methods.DavMethod;
import org.apache.jackrabbit.webdav.client.methods.MkColMethod;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
import org.apache.jackrabbit.webdav.client.methods.PutMethod;
public class TestJackrabbit {
public static void main(String[] args) throws IOException, DavException {
HttpClient client = new HttpClient();
Credentials creds = new UsernamePasswordCredentials("admin", "admin");
client.getState().setCredentials(AuthScope.ANY, creds);
DavMethod mkCol = new MkColMethod("http://192.168.1.71:4502/crx/repository/crx.default/content/dam/testfolder");
client.executeMethod(mkCol);
System.out.println("mkcol testfolder:" + mkCol.getStatusCode() + " " + mkCol.getStatusText());
PutMethod put = new PutMethod("http://192.168.1.71:4502/crx/repository/crx.default/content/dam/testfolder/testimg.jpg");
RequestEntity requestEntity = new InputStreamRequestEntity(new FileInputStream("img12.jpg"));
put.setRequestEntity(requestEntity);
client.executeMethod(put);
System.out.println("put image file:" + put.getStatusCode() + " " + put.getStatusText());
DavMethod find = new PropFindMethod("http://192.168.1.71:4502/crx/repository/crx.default/content/dam/testfolder", DavConstants.PROPFIND_ALL_PROP, DavConstants.DEPTH_1);
client.executeMethod(find);
MultiStatus multiStatus = find.getResponseBodyAsMultiStatus();
MultiStatusResponse[] responses = multiStatus.getResponses();
System.out.println("Folders and files:");
for (int i=0; i<responses.length; i++) {
System.out.println(responses[i].getHref());
}
}
}
分享到:
相关推荐
WebDAV客户端是用于与WebDAV服务器交互的软件,使得用户可以如同操作本地文件系统一样操作远程服务器上的文件。 标题中的"webdav客户端中文版"指的是支持中文界面的WebDAV客户端软件,这为中文用户提供了更加友好的...
- 开发团队:团队成员可以在WebDAV服务器上共享代码,实时查看彼此的更改,同时避免冲突。 - 远程工作者:通过AnyClient,员工可以从任何地方访问公司内部服务器上的文件,提高工作效率。 - 文件共享:家庭或团队...
DAV Explorer is a Java application which uses Java 2 and has successfully been run on Microsoft Windows from Windows 95 to Server 2003, Solaris and Linux. It has been reported to run on Macintosh ...
为多服务器,多服务器类型,添加到远程服务器的文件提供文件下载/文件通知功能的webdav客户端。 按照用户提供的时间间隔,对远程服务器进行轮询,以查看已添加到远程服务器的文件。 当找到新文件时,它可以为您下载...
Jackrabbit是Apache基金会的一个开源项目,它提供了一个全面的Java Content Repository (JCR) 实现,也支持WebDAV协议。在Android中,如果需要用到更复杂的文件管理和版本控制功能,可以考虑使用Jackrabbit库。 4....
2. WebDAV:这是一种增强HTTP协议的协议,允许用户远程编辑和管理文件,Jackrabbit的WebDAV模块提供了与内容存储库的WebDAV接口。 3. Apache Solr:一个流行的全文搜索引擎,广泛用于网站搜索、日志分析和其他文本...
import com.googlecode.sardine.Sardine; import ... WebDav的java客户端开发包:sardine 适用于文件上传 请参考 作者:yiyu 来源:iteye 原文:https://yiyu.iteye.com/blog/892408
使用 Apache Jackrabbit 实现 WebDAV 客户端 WebDAV 是一个重要的网络通信协议,基于 WebDAV 可以开发出丰富多彩的应用程序,例如云计算、办公自动化、数据仓库、流媒体等。本文首先介绍了 WebDAV、JCR 的概念,并...
杰克兔(Jackrabbit)是Apache软件基金会的一个项目,它是一个完全实现WebDAV协议的Java库。WebDAV是一种基于HTTP协议的协议扩展,用于用户编辑和管理存储在远程服务器上的文档。Jackrabbit提供了对WebDAV协议的...
jackrabbit-webdav-2.1.0.jar 具体用法可以网上查找
我看了看中的其他Java webdav客户端, 和 。 他们都没有按照我想要的方式做事。 记录了如何使用沙丁鱼。 如果您饿了,这是一个从远程Webdav服务器中检索目录列表的开胃菜: Sardine sardine = SardineFactory . ...
WebDAVClient是一款专为Android平台设计的客户端应用,它实现了对WebDAV协议的支持,使得用户能够在Android设备上方便地访问和管理支持WebDAV协议的远程服务器上的文件。WebDAV是基于HTTP协议的扩展,用于进行分布式...
webdav-js 一种从浏览器管理WebDAV文件系统的简单方法。 该项目的最初目的是提供一个书签,以便在您要管理WebDAV服务器时使用,而无需使用第三方应用程序。 此后,该应用程序已被重写为不依赖jQuery,而是使用更...
1. **内容模型**:Jackrabbit支持基于XML的元数据和内容的存储,允许创建自定义的内容类型(节点类型)。 2. **版本控制**:它允许对内容进行版本追踪,便于回滚到之前的版本。 3. **安全性**:通过ACL(Access ...
DavUtils是易于使用的WebDAV客户端工具的集合。 内置的客户端加密允许您使用AES即时加密和解密文件。 当前有两个命令行工具可用:dav是一个多用途WebDAV客户端,可以像标准的UNIX工具ls,mkdir和rm一样使用。 另一个...
阿里云java源码 说明:支持阿里Teambition网盘的webdav协议,后续的2.x版本仅支持阿里云盘,不再维护Teambition网盘版本 webdav-aliyundriver 本项目实现了阿里云盘的webdav协议,只需要简单的配置一下,就可以让...
Davenport是Java实现的一个WebDAV网关,它允许开发者将任何可以读写数据的Java接口暴露为WebDAV资源,从而简化了对分布式协作编辑和版本控制的需求。 Davenport项目的核心概念是提供一个中间件,该中间件能够接收...
催化剂Elixir的非常基本的WebDav客户端。 使用:hackney作为HTTP驱动程序用法 # Start a genserver processCatalyst . start_link host: " http://example-webdav.com " , user: " some_user " , password: " 123 "#...
**AnyClient 64位WebDAV客户端** AnyClient是一款多协议文件传输工具,它为用户提供了一种方便的方式来访问和管理远程服务器上的文件。这款工具的64位版本专为处理更大内存需求和提高性能而设计,适用于Windows操作...
Java版本的WebDAVServer和FTPServer是两个用于文件共享和服务的服务器软件,它们都是基于Java语言开发的。WebDAV(Web-based Distributed Authoring and Versioning)是一种扩展HTTP协议的技术,允许用户编辑和管理...