webdav 客户端开发的问题

snowsalt 2008-02-27 03:09:45
本人在tomcat下部署了webdav2.1.在进行webdav客户端开发的时候遇到了一些问题,请教各位.
我用的上传代码是:

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpURL;
import org.apache.webdav.lib.WebdavResource;
import java.util.*;

public class CenSlideClientImpl {

public static final boolean putFileToWebDAV(String urlPath,String urlFileName,String uid,String pwd,String localPath,String localFileName)
throws HttpException
{
boolean bool = false;
try
{

HttpURL hrl = new HttpURL(urlPath);
hrl.setUserinfo(uid,pwd);
//hrl.setUser(uid);
//hrl.setPassword(pwd);
WebdavResource wdr = new WebdavResource(hrl);
System.out.println("测试Web路径:" +wdr.getPath());

File file = new File(localPath+"/"+localFileName); //指定上传本地某个目录下的文件
String path = wdr.getPath();
if(!path.endsWith("/"))
path +="/";
path += urlFileName; //上传到WebDAV后可按另外一个文件名保存
System.out.println("\nFilePath is:" +path+"\n");
//if (!wdr.isCollection())
// throw new Exception("Path is currently a file");
//wdr.setPath(currentPath + "/" + urlFileName);
//wdr.setPath("/webdav/down.txt"); //如果指定的文件不存在则发生异常。

try //尝试锁定
{
wdr.setPath(path);

if (wdr.isLocked())
{

// bool = false;
// System.out.println("文件已被锁定,上传失败!");
// return bool;
wdr.unlockMethod();
bool = wdr.putMethod( path,file );

}
else
{
// wdr.lockMethod(uid,10000000);
bool = wdr.putMethod( path,file );
//wdr.unlockMethod();
}

}
catch(Exception ex)
{
bool = wdr.putMethod( path,file );
//wdr.unlockMethod();
System.out.println("\n文件不存在,不需锁定...\n");
}
finally
{

wdr.close();

}
}
catch(MalformedURLException mue)
{

System.out.println("MalformedURLException:"+mue.getMessage());
}
catch(HttpException he)
{

System.out.println("HttpException:"+he.getMessage());

}
catch(IOException ioe)
{

System.out.println("IOException:"+ioe.getMessage());

}
catch(Exception ex)
{

System.out.println("ThrowException:"+ex.getMessage());
}
finally
{
//wdr.close();
}

return bool;


}

public static void main (String args[])
{
boolean bool = false;
try
{
putFileToWebDAV("http://127.0.0.1:9092/slide/files/","remotefile.txt","root","root","C:\\EOS53\\","readme.txt");
}
catch(Exception ex)
{
System.out.println("Exception:"+ex.getMessage());
}
}

}


现在问题是:我在调试时,程序在执行 WebdavResource wdr = new WebdavResource(hrl);
时出现HttpExcetion异常.控制台报:
http-9092-Processor25, 27-二月-2008 15:07:41, unauthenticated, PROPFIND, 400 "Bad Request", 190 ms, /files/
错误.
用户名root的密码都是正常的.http://127.0.0.1:9092/slide/files/这个目录在IE中中访问也正常.就是在java程序中不能正常.
请教各位,这是怎么回事?怎么解决这个问题.
...全文
471 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiya7291 2011-11-09
  • 打赏
  • 举报
回复
请问现在有谁能解决这个问题吗?忘高手来指教!
sqnpy 2011-03-08
  • 打赏
  • 举报
回复
现在解决了不?教教我吧
snowsalt 2008-02-28
  • 打赏
  • 举报
回复
还是没有人回答?都没有人用过webdav么.
snowsalt 2008-02-27
  • 打赏
  • 举报
回复
还有,在webdav上怎样用java程序新建文件夹?
snowsalt 2008-02-27
  • 打赏
  • 举报
回复
没有人能回答么,没有人能帮助我么.
snowsalt 2008-02-27
  • 打赏
  • 举报
回复
我用的tomcat是5.0.30   webdav是:2.1 我看网上朋友发的例子,也是这样做的.不知道我的为什么不能成功执行.请教大家.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧