当前位置:编程学习 > JAVA >>

用svnkit连接svn出错了


在测试时找了几个svn服务器做测试都没有问题,可是到客户那里就是连接不上,还报错、。。。


/**
 * 初始化操作
 * 
 * @throws Exception
 */
public void initialize() throws Exception {

FSRepositoryFactory.setup();
DAVRepositoryFactory.setup();
SVNRepositoryFactoryImpl.setup();

repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(this.url));


ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(this.username,this.password);
repository.setAuthenticationManager(authManager);
}

/**
 * 测试svn连接是否成功
 * 
 * @throws Exception
 */
public String testConnect(String url, String username, String password) {
setUrl(url);
setUsername(username);
setPassword(password);
int i = url.indexOf("//");
// 相对仓库根目录的路径
setPath(url.substring(i + 2).substring(
url.substring(i + 2).indexOf("/")));

try {
initialize();
Collection<SVNDirEntry> entries;
entries = repository.getDir("/", -1, null, (Collection) null);

System.out.println(repository.getRepositoryRoot(true).toDecodedString());
return repository.getRepositoryRoot(true).toDecodedString();

} catch (Exception e) {
e.printStackTrace();
System.out.println("false");
return "false";
}
}

报错code:
org.tmatesoft.svn.core.SVNAuthenticationException: svn: Authentication required
for '<http://XXX.xx.xx.xx:80> Please input your domain username and password'
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFail
ed(SVNErrorManager.java:46)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFail
ed(SVNErrorManager.java:40)
        at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.ge
tNextAuthentication(DefaultSVNAuthenticationManager.java:202)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HT
TPConnection.java:481)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HT
TPConnection.java:255)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HT
TPConnection.java:243)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabili
ties(DAVConnection.java:452)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnecti
on.java:95)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(D
AVRepository.java:642)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getDir(DAVReposi
tory.java:288)

原因应该是他们使用的是域用户认证,那么代码就应该改:
initialize();
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(this.username,this.password);

但是那么改呢,看svnkit文档脑壳都看大了,英语太撇老。。。。求大神帮助。。。
ps:以后得认真学英语。。 --------------------编程问答-------------------- 服务器url 不对 或 者 用户名 密码有问题。 --------------------编程问答-------------------- svnkit不支持端口号,将端口号去掉试试 --------------------编程问答-------------------- org.tmatesoft.svn.core.SVNAuthenticationException: svn: Authentication required for '<http://svn.xxx.cn:80>' 
原因:据说是svnkit包的一个bug. 
解决方案: 
添加JVM系统参数-Dsvnkit.http.methods=Basic,Digest,NTLM 
System.setProperty("svnkit.http.methods", "Basic,Digest,NTLM");  --------------------编程问答--------------------
引用 3 楼 chenqirang 的回复:
org.tmatesoft.svn.core.SVNAuthenticationException: svn: Authentication required for '<http://svn.xxx.cn:80>' 
原因:据说是svnkit包的一个bug. 
解决方案: 
添加JVM系统参数-Dsvnkit.http.methods=Basic,Digest,NTLM 
System.setProperty("svnkit.http.methods", "Basic,Digest,NTLM"); 


哥们,谢谢你了!问题解决了!!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,