使用SVNKIT在checkout的时候报错,org.tmatesoft.svn.core.SVNException: svn: E175002: connec

qingliang4321 2019-12-26 09:17:42
springboot项目,引入svnkit-1.9.3版本,在本机idea下测试无任何问题,checkout和commit都成功。
但是发布程序到服务器(Centos7)的时候,发现连接svn服务器被拒绝了,很奇怪,问题一直解决不了。
首先,从服务器到svn服务器的网络是能ping通的,所以应该不是网络问题(刚开始怀疑网络是因为ip不在一个段内);
然后,svn服务肯定是没问题,因为本机怎么测试都成功。
现在分析不出原因了,求大神帮忙,具体报错如下:

svn: E175002: OPTIONS request failed on '/svn/***/***'
org.tmatesoft.svn.core.SVNException: svn: E175002: connection refused by the server
svn: E175002: OPTIONS request failed on '/svn/***/***'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:178)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:43)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:831)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:777)
...
Caused by: java.net.ConnectException: 拒绝连接 (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:606)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.java:164)
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory._createSSLSocket(SVNSocketFactory.java:124)
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:94)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:237)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:415)
... 36 more


Pom文件:
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.9.3</version>
</dependency>


java:
public long checkout(SVNClientManager clientManager, SVNURL url,
SVNRevision revision, File destPath, SVNDepth depth) {

SVNUpdateClient updateClient = clientManager.getUpdateClient();
/*
* sets externals not to be ignored during the checkout
*/
updateClient.setIgnoreExternals(false);
/*
* returns the number of the revision at which the working copy is
*/
try {
return updateClient.doCheckout(url, destPath, revision, revision, depth, false);
// return updateClient.doCheckout(url, destPath, revision, revision, depth, true);
} catch (SVNException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
return 0;
}


个人怀疑和Centos的openssl有关系,但是又没啥办法测试解决,openssl版本:
[root@node02 ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@node02 ~]# svn checkout --username=username --password=password https://100.6.8.150:9011/svn/data-map
svn: E175002: Unable to connect to a repository at URL 'https://100.6.8.150:9011/svn/data-map'
svn: E175002: 方法 OPTIONS 失败于 “https://100.6.8.150:9011/svn/data-map”: 无法连接到服务器 (https://100.6.8.150:9011)



...全文
1636 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
地球太平洋 2019-12-26
  • 打赏
  • 举报
回复
我觉得要做如下测试:
1. 测试centos 下的tcp连接是否正常, 可以打开一个常用服务,例如ftp, telnet测试。
你目前telent被拒绝,是否是centos上的telnet服务根本没开?

2.centos 下的本地svn功能正常,是否本地没有使用tcp访问svn服务?查看一下svn服务的相关配置
qingliang4321 2019-12-26
  • 打赏
  • 举报
回复
引用 1 楼 天行归来 的回复:
服务器上 telnet svn 的 9011端口看下是否是通的,原来本地连svn正常,说明svn9011端口是放行,但开发服务器iptable里9011端口是否放行?


telnet也给我拒绝了。。。难道是svn服务设置了ip白名单?

[root@node02 ~]# telnet 100.6.8.150 9011
Trying 100.6.8.150...
telnet: connect to address 100.6.8.150: Connection refused
[root@node02 ~]#
qingliang4321 2019-12-26
  • 打赏
  • 举报
回复
引用 2 楼 地球太平洋 的回复:
看调用是在socket层出错了,可能是防火墙的原因,先去掉防火墙试试。


防火墙很早就关了,Selinux也关了,端口基本都是开放的,没限制。。。
[root@node02 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@node02 ~]#

地球太平洋 2019-12-26
  • 打赏
  • 举报
回复
看调用是在socket层出错了,可能是防火墙的原因,先去掉防火墙试试。
天行归来 2019-12-26
  • 打赏
  • 举报
回复
服务器上 telnet svn 的 9011端口看下是否是通的,原来本地连svn正常,说明svn9011端口是放行,但开发服务器iptable里9011端口是否放行?

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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