Возникли проблемы с сервером конфигурации Spring Cloud для чтения файлов / значений из SVN через PROXY - PullRequest
0 голосов
/ 23 мая 2019

В нашей реализации микросервисов мы используем конфигурацию 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]

и исключение растет.

  1. Сценарий нормально работает в локальном режиме: файл свойств хранится в локальном каталоге и передается в проект облачной конфигурации - работает отлично!

  2. Пробовал использовать 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, и сервер выдает исключение, упомянутое выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...