В нашей реализации микросервисов мы используем конфигурацию Spring Cloud для чтения значений конфигурации - SVN в качестве хранилища и доступа к нему через прокси-хост.
application.yml:
spring:
application:
name: spring-cloud-config-server
profiles:
active: subversion
cloud:
config:
server:
svn:
uri: <<<https://svn_host_name/directory/>>>
username: <<<svu userID>>>
password: <<<svu password>>>
proxy:
https:
host: <<<host IP of proxy>>>
port: '80'
Следующее исключение, которое я получаю:
2019-05-23 21:00:47.634 ERROR 11760 --- [nio-8888-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot checkout repository] with root cause
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_202]
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[na:1.8.0_202]
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_202]
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_202]
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_202]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_202]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_202]
at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_202]
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source) ~[na:1.8.0_202]
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.java:162) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory._createSSLSocket(SVNSocketFactory.java:122) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:92) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:282) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:461) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:398) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:386) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:863) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:699) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:118) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1049) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:189) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:184) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:809) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235) ~[svnkit-1.8.12.jar:na]
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294) ~[svnkit-1.8.12.jar:na]
и исключение растет.
Сценарий нормально работает в локальном режиме: файл свойств хранится в локальном каталоге и передается в проект облачной конфигурации - работает отлично!
Пробовал использовать http вместо https для прокси в application.yml [SVN всегда https], но то же исключение.
Вопрос:
Я уверен, что он пытается подключиться к репозиторию SVN, но проблема, похоже, связана с настройками прокси?!
Кто-нибудь до сих пор пытался получить доступ к SVN [или git] через прокси, успешно, сталкивался ли с подобной проблемой случайно?!
UPDATE-1
Я использую Greenwich Release весеннего облака.
pom.xml (соответствующие) записи сервера облачной конфигурации:
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
</dependency>
UPDATE-2
Использовал тот же IP-адрес прокси-сервера в моем TortoiseSVNtool в опции сети. Благодаря этому, SVN-черепаха может подключаться к фактическому URL-адресу SVN через IP-адрес прокси.
Не работает на сервере spring-cloud-config. Не уверен, где я отстаю, чтобы вызвать эту проблему. Любые материалы будут очень полезны и высоко ценится.
Как только я запускаю весенний проект клиента, он пытается подключиться к серверу cloudconfig, и сервер выдает исключение, упомянутое выше.