SVNKIT 多次执行repository.getDir()报错svn:E175002:connection refused by the server

weichuanlong123 2013-11-14 02:55:42
大家好:最近在用svnkit对svn的所有的文件夹信息进行遍历,但是svn里面的文件夹太过庞大,总是执行一段时候后就报svn:E175002:connection refused by the server,svn:E175002:PROPFIND request failed on /xxxx/xxxxx/xxxxxxx,而且报错的文件夹路径每次都不一样,我单独对报错的文件夹路径进行 connection 却没有错误,后来我觉得可能是访问太快占用的资源太多,又在方法里加了 sleep(500),错误依然,对此我很无奈,不知道错误的关键在哪里,请高人指点。

public static void main(String[] args) {

// 初始化支持svn://协议的库。 必须先执行此操作。
SVNRepositoryFactoryImpl.setup();

/*
* 相关变量赋值
*/
String url = "xxxxxxxx";
String name = "xxxxxx";
String password = "xxxxxxxxx";
// 定义svn版本库的URL。
SVNURL repositoryURL = null;
// 定义版本库。
SVNRepository repository = null;
/*
* 实例化版本库类
*/
try {
// 获取SVN的URL
repositoryURL = SVNURL.parseURIEncoded(url);
// 根据URL实例化SVN版本库
repository = SVNRepositoryFactory.create(repositoryURL);
} catch (SVNException svne) {
/*
* 打印版本库实例创建失败的异常
*/
System.err.println("创建版本库实例时失败,版本库的URL是 '" + url + "': "
+ svne.getMessage());
System.exit(1);
}

/*
* 对版本库设置认证信息
*/
ISVNAuthenticationManager authManager = SVNWCUtil
.createDefaultAuthenticationManager(name, password);
repository.setAuthenticationManager(authManager);
try {

listEntries(repository, "");

} catch (SVNException svne) {
System.err.println("打印版本树时发生错误: " + svne.getMessage());
System.exit(1);
}
/*
* 获得版本库的最新版本树
*/
long latestRevision = -1;
try {
latestRevision = repository.getLatestRevision();
} catch (SVNException svne) {
System.err.println("获取最新版本号时出错: " + svne.getMessage());
System.exit(1);
}

System.exit(0);
}

/*
* 此函数递归的获取版本库中某一目录下的所有条目。
*/
@SuppressWarnings("unchecked")
public static void listEntries(SVNRepository repository, String path)
throws SVNException {
// 获取版本库的path目录下的所有条目。参数-1表示是最新版本。
Collection entries = repository.getDir(path, -1, null,
(Collection) null);
Iterator iterator = entries.iterator();
while (iterator.hasNext()) {
//只获取文件夹的名字,如果类型非dir退出本次循环
if(entry.getKind() != SVNNodeKind.DIR){
continue;
}
SVNDirEntry entry = (SVNDirEntry) iterator.next();
System.out.println("/" + (path.equals("") ? "" : path + "/")
+ entry.getName() + " (author: '" + entry.getAuthor()
+ "'; revision: " + entry.getRevision() + "; date: "
+ entry.getDate() +"ENTRY MESS"+entry.getCommitMessage()+ ")");
/*
* 检查此条目是否为目录,如果为目录递归执行
*/
if (entry.getKind() == SVNNodeKind.DIR) {
listEntries(repository, (path.equals("")) ? entry.getName()
: path + "/" + entry.getName());
}
}
}
...全文
8060 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
robin_van_persie 2015-04-23
  • 打赏
  • 举报
回复
我也不会啊亲
weichuanlong123 2013-11-15
  • 打赏
  • 举报
回复
每天一up···
weichuanlong123 2013-11-14
  • 打赏
  • 举报
回复
不要沉啊~~~~
weichuanlong123 2013-11-14
  • 打赏
  • 举报
回复
自己up一下···· again
hejinlove 2013-11-14
  • 打赏
  • 举报
回复
可以尝试 SVNRepository.status 方法,获取属性信息库中的所有文件
weichuanlong123 2013-11-14
  • 打赏
  • 举报
回复
自己up一下····

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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