svn org.tigris.subversion.javahl.ClientException: Permission denied Can't create directory

本文解决了一个关于SVN中用户写权限的问题。问题出现在使用root身份创建SVN仓库时,普通用户无法进行写操作。通过使用sudochown命令更改目录所有者解决了此问题。

这个主要原因:在svnadmin create时是root身份,而创建用户没有write权限等

解决办法:sudo chown -Rymm  /home/svn/svntest



在使用 SubversionJavaHL 库时,如果遇到 `org.apache.subversion.javahl.ClientException: Can't create session` 异常,通常表示客户端无法成功连接到 Subversion 仓库。此问题可能由多种原因导致,包括网络问题、认证失败、URL 错误或库版本不兼容等。 ### 常见原因及解决方案 #### 1. 检查仓库 URL 确保使用的仓库 URL 是正确的,并且可以通过浏览器或命令行工具(如 `svn`)访问。URL 应该以 `http://`、`https://`、`svn://` 或 `file:///` 开头。错误的协议或路径会导致无法创建会话[^1]。 #### 2. 网络连接问题 验证客户端是否能够访问服务器。可以通过 `ping` 或 `telnet` 命令测试网络连通性。例如: ```bash ping svn.example.com telnet svn.example.com 80 ``` #### 3. SSL/TLS 证书问题 如果使用 HTTPS 协议访问仓库,可能存在 SSL/TLS 证书问题。可以尝试在代码中信任所有证书(仅用于测试环境): ```java import org.apache.subversion.javahl.ISVNAuthenticationManager; import org.apache.subversion.javahl.SVNClient; import org.apache.subversion.javahl.callback.SSLServerTrustManager; public class SvnClientExample { public static void main(String[] args) { try { SVNClient client = new SVNClient(); client.setSSLServerTrustManager(new SSLServerTrustManager() { @Override public void unknownCertificate(String realm, boolean unknownHost, boolean unknownIssuer, boolean expired, boolean notYetValid, boolean wrongHost) { // 接受所有证书 } @Override public boolean promptTrustSSLServer(String realm, String fingerprint, boolean valid) { return true; } }); // 设置认证信息 client.setAuthenticationManager(ISVNAuthenticationManager.defaultManager("username", "password")); // 尝试连接仓库 client.info("https://svn.example.com/repo", null); } catch (Exception e) { e.printStackTrace(); } } } ``` #### 4. 认证失败 确保提供的用户名和密码是正确的。可以在代码中设置认证信息: ```java client.setAuthenticationManager(ISVNAuthenticationManager.defaultManager("username", "password")); ``` #### 5. 防火墙或代理设置 如果客户端位于防火墙或代理后面,需要配置代理设置。可以通过以下方式设置代理: ```java System.setProperty("http.proxyHost", "proxy.example.com"); System.setProperty("http.proxyPort", "8080"); System.setProperty("https.proxyHost", "proxy.example.com"); System.setProperty("https.proxyPort", "8080"); ``` #### 6. 库版本不兼容 确保使用的 JavaHL 库版本与 Subversion 服务器版本兼容。可以尝试更新或降级库版本以解决问题。 #### 7. 检查 Subversion 服务器状态 确保 Subversion 服务器正在运行,并且没有出现任何错误。可以通过检查服务器日志来获取更多信息。 ### 总结 `org.apache.subversion.javahl.ClientException: Can't create session` 异常通常由网络问题、认证失败、URL 错误或库版本不兼容引起。通过检查仓库 URL、网络连接、SSL/TLS 证书、认证信息、防火墙设置以及服务器状态,可以逐步排查并解决该问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值