1

Я запускаю реестр JHipster в контейнере докера. Все приложения , работающие на докере, могут подключаться и регистрироваться в конечной точке реестра (порт 8761).Не удается подключиться к реестре весны jhipster на докере через IDE

Но когда я пытаюсь подключиться приложение работает на моем IDEA, я получаю сообщение об ошибке при попытке подключения к конечной точке реестра:

2016-07-21 10:35:24.912 INFO 1455 --- [ restartedMain] a.b.p.App2App    : Started App2App in 14.944 seconds (JVM running for 15.912) 
2016-07-21 10:35:24.913 INFO 1455 --- [ restartedMain] a.b.p.App2App    : 
---------------------------------------------------------- 
    Application 'app2' is running! Access URLs: 
    Local:  http://127.0.0.1:8081 
    External: http://192.168.1.104:8081 
---------------------------------------------------------- 
2016-07-21 10:35:24.913 INFO 1455 --- [ restartedMain] a.b.p.App2App    : 
---------------------------------------------------------- 
    Config Server: Connected to the JHipster Registry running in Docker 
---------------------------------------------------------- 
2016-07-21 10:35:24.915 DEBUG 1455 --- [nfoReplicator-0] s.n.www.protocol.http.HttpURLConnection : [email protected] pairs: {GET /config/application/prod/master HTTP/1.1: null}{Accept: application/json, application/*+json}{Authorization: Basic YWRtaW46YWRtaW4=}{User-Agent: Java/1.8.0_65}{Host: localhost:8761}{Connection: keep-alive} 
2016-07-21 10:35:25.057 DEBUG 1455 --- [nfoReplicator-0] s.n.www.protocol.http.HttpURLConnection : [email protected] pairs: {null: HTTP/1.1 200 OK}{Server: Apache-Coyote/1.1}{X-Content-Type-Options: nosniff}{X-XSS-Protection: 1; mode=block}{Cache-Control: no-cache, no-store, max-age=0, must-revalidate}{Pragma: no-cache}{Expires: 0}{X-Application-Context: jhipster-registry:dev,native:8761}{Content-Type: application/json;charset=UTF-8}{Transfer-Encoding: chunked}{Date: Thu, 21 Jul 2016 13:35:24 GMT} 
2016-07-21 10:35:25.058 INFO 1455 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APP2/app2:cddc722884843f95abdcf09d4996623d: registering service... 
2016-07-21 10:35:25.059 ERROR 1455 --- [nfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error 

com.sun.jersey.api.client.ClientHandlerException: java.net.UnknownHostException: registry 
    at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) 
    at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123) 
    at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) 
    at com.sun.jersey.api.client.Client.handle(Client.java:652) 
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) 
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) 
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) 
    at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.register(AbstractJerseyEurekaHttpClient.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118) 
    at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:810) 
    at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:103) 
    at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:87) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.net.UnknownHostException: registry 
    at java.net.InetAddress.getAllByName0(InetAddress.java:1280) 
    at java.net.InetAddress.getAllByName(InetAddress.java:1192) 
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) 
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:259) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:159) 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
    at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173) 
    ... 30 common frames omitted 

2016-07-21 10:35:25.059 WARN 1455 --- [nfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failure 
2016-07-21 10:35:25.060 WARN 1455 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APP2/app2:cddc722884843f95abdcf09d4996623d - registration failed Cannot execute request on any known server 

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 
    at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:111) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:810) 
    at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:103) 
    at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:87) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

2016-07-21 10:35:25.060 WARN 1455 --- [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator  : There was a problem with the instance info replicator 

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 
    at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:111) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) 
    at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) 
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) 
    at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:810) 
    at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:103) 
    at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:87) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Приложения подключается к Регистрации (увидеть в журналах), но после этого я получаю сообщение об ошибке:

UnknownHostException: registry 

Кто-нибудь знает, как я могу подключиться к реестру, работающему в докере?

Моя весна application.yml является:

eureka: 
    instance: 
     prefer-ip-address: true 
    client: 
     enabled: true 
     healthcheck: 
      enabled: true 
     registerWithEureka: true 
     fetchRegistry: true 
     serviceUrl: 
      defaultZone: http://admin:[email protected]:8761/eureka/ 

зоны по умолчанию в jhipster-реестре http://user:[email protected]:8761/eureka.

Если я изменяю локальные, например:

eureka: 
    client: 
     serviceUrl: 
      defaultZone: http://admin:[email protected]:8761/eureka/ 

Он работает, но в этом случае служба, работающая в докер не может получить доступ к реестру (обратная задача).

Спасибо!

+0

В IDEA мне всегда нужно настроить рабочий каталог MODULE_DIR в целевой среде, в противном случае приложение не сможет найти свой файл конфигурации. Кроме того, важным файлом является bootstrap.yml not application.yml, потому что реестр также является конфигурационным сервером весеннего облака. –

+0

@ GaëlMarziou classpath модуля? Вот конфигурационные файлы и конфиг в IDEA: https://gist.github.com/cavarzan/6b27476baaf8f4dfefc347c9d51931fb –

+0

Рабочий каталог, и он выглядит хорошо из того, что я вижу. Извините, я больше не могу вам помочь, я не использую Docker для запуска микросервисов JHipster, я предпочитаю запускать их непосредственно в java, это проще для отладки. –

ответ

0

У меня была аналогичная проблема. В версии 3.5.0 мне удалось успешно запустить реестр на основе докеров, а затем запустить не докерные версии микросервиса и шлюза. С 3.5.1 я больше не мог этого сделать, получая ту же самую ошибку, которую вы получаете. Я думаю, что это связано с https://github.com/jhipster/generator-jhipster/pull/3848. В любом случае, я просто добавил запись в файл/etc/hosts, указав «реестр» на 127.0.0.1, и он сработал.

0

Локальный хост на докере, работающий под микросервисом, - это не тот же локальный хост на докере, где работает реестр. Я изменил localhost на адрес Intranet хоста, это работа для меня.

eureka: 
    instance: 
     prefer-ip-address: true 
    client: 
     service-url: 
      defaultZone: http://admin:${jhipster.registry.password}@10.31.224.228:8761/eureka/ 

 Смежные вопросы

  • Нет связанных вопросов^_^