2016-05-10 4 views
2

Я пытаюсь использовать JHipster для проекта с использованием микросервисов, но последний реестр JHipster не позволит моим шлюзам или микросервисам получить доступ к серверу конфигурации и отклонит их.JHipster Registry отвергает шлюзы и микросервисы

Я установил JHipster Vagrant DevBox, а затем использовал docker run -p 8761:8761 jhipster/jhipster-registry для запуска реестра JHipster. Затем я создал шлюз и 2 микросервиса после this, и он сработал.

Но тогда я хотел использовать реестр JHipster из GitHub, поэтому я клонировал его и запустил (видимо, он был обновлен до 2.0.0 тем временем). К сожалению, шлюз и микросервисы не смогли получить доступ к этому реестру. Они все еще имели доступ к реестру изображений Docker, хотя (я полагаю, Docker не обновил его). Но поскольку это было более привлекательным и, вероятно, более современным, я хотел использовать последнюю версию реестра, такую ​​же, как и у GitHub. Поэтому я попытался обновить реестр Jockster для Docker с помощью docker pull. И теперь он не будет работать ни с реестром, ни с докером, ни с клоном GitHub.

Когда реестр работает, и я бегу шлюз или microservice, я получаю 6 раз это:

2016-05-10 15:39:07.511 DEBUG 20706 --- [   main] s.n.www.protocol.http.HttpURLConnection : [email protected] pairs: {GET /config/gateway/dev/master HTTP/1.1: null}{Accept: application/json, application/*+json}{User-Agent: Java/1.8.0_91}{Host: localhost:8761}{Connection: keep-alive} 
2016-05-10 15:39:07.522 DEBUG 20706 --- [   main] s.n.www.protocol.http.HttpURLConnection : [email protected] pairs: {null: HTTP/1.1 401 Unauthorized}{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}{Content-Type: application/json;charset=UTF-8}{Transfer-Encoding: chunked}{Date: Tue, 10 May 2016 15:39:07 GMT} 

Тогда я получаю сообщение об ошибке:

2016-05-10 15:39:13.781 ERROR 20706 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

Тогда я получаю Java исключения:

java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.locate(ConfigServicePropertySourceLocator.java:110) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator$$FastClassBySpringCGLIB$$fa44b2a.invoke(<generated>) 
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
at org.springframework.retry.interceptor.RetryOperationsInterceptor$1.doWithRetry(RetryOperationsInterceptor.java:74) 
at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:263) 
at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:154) 
at org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:101) 
at org.springframework.retry.annotation.AnnotationAwareRetryOperationsInterceptor.invoke(AnnotationAwareRetryOperationsInterceptor.java:118) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator$$EnhancerBySpringCGLIB$$a0abff82.locate(<generated>) 
at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:89) 
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:640) 
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:343) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
at com.soprasteria.example.GatewayApp.main(GatewayApp.java:73) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized 
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) 
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557) 
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:475) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.getRemoteEnvironment(ConfigServicePropertySourceLocator.java:130) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.locate(ConfigServicePropertySourceLocator.java:81) 
... 23 common frames omitted 

[WARNING] 
java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.locate(ConfigServicePropertySourceLocator.java:110) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator$$FastClassBySpringCGLIB$$fa44b2a.invoke(<generated>) 
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
at org.springframework.retry.interceptor.RetryOperationsInterceptor$1.doWithRetry(RetryOperationsInterceptor.java:74) 
at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:263) 
at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:154) 
at org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:101) 
at org.springframework.retry.annotation.AnnotationAwareRetryOperationsInterceptor.invoke(AnnotationAwareRetryOperationsInterceptor.java:118) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator$$EnhancerBySpringCGLIB$$a0abff82.locate(<generated>) 
at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:89) 
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:640) 
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:343) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
at com.soprasteria.example.GatewayApp.main(GatewayApp.java:73) 
... 6 more 
Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized 
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) 
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557) 
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:475) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.getRemoteEnvironment(ConfigServicePropertySourceLocator.java:130) 
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.locate(ConfigServicePropertySourceLocator.java:81) 
... 23 more 

и, наконец, BUILD FAILURE и ошибка Maven:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.3.RELEASE:run (default-cli) on project gateway: An exception occurred while running. null: InvocationTargetException: Could not locate PropertySource and the fail fast property is set, failing: 401 Unauthorized -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

В оболочке реестра, необходимо я получаю эту строку 6 раз тоже:

2016-05-10 15:39:07.519 DEBUG 17958 --- [io-8761-exec-10] i.g.j.r.s.Http401UnauthorizedEntryPoint : Pre-authenticated entry point called. Rejecting access 

Я попытался обновить все, и я в настоящее время пытаюсь принизить вещи (так как документ говорит «мы рекомендуем использовать тот же тег версии, который вы используете для своего генератора JHipster », но я не думаю, что он будет работать, поскольку последняя версия JHipster Registry 2.0.0, а генератор JHipster представил микросервисы с версией 3.0), и я также попытался напрямую копировать секрет от центра-сервера-config к конфигурации приложений, но, видимо, безрезультатно.

Не могли бы вы мне помочь?

спасибо, что заранее.

EDIT:

Я попытался обновить JHipster до 3.2.1 с помощью npm install -g generator-jhipster, который, по-видимому работал, но когда я бегу yo jhipster, старшина все еще использует JHipster 3.1.0. На самом деле, даже если я удалить JHipster с npm uninstall -g generator-jhipster, старшина все еще может использовать JHipster 3.1.0 ...

EDIT:

Он отлично работает, если я переустановить все локально (в директории, где я использую yo jhipster). Тем не менее, я все еще не могу обновить JHipster глобально в Йомен. Когда я пытаюсь использовать npm install -g generator-jhipster, он обновляет JHipster по всему миру до 3.2.1, но Yeoman по-прежнему использует 3.1.0.Если я пытаюсь обновить JHipster с помощью yo/«обновленными генераторы»/генератор-jhipster, я получаю сообщение об ошибке:

npm WARN deprecated [email protected]: this package has been reintegrated into npm and is now out of date with respect to npm 
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/generator-jhipster 
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules 
/usr/local/lib 
└── [email protected] 

npm ERR! Linux 3.13.0-85-generic 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "generator-jhipster" 
npm ERR! node v4.4.4 
npm ERR! npm v3.8.9 
npm ERR! path /usr/local/lib/node_modules/generator-jhipster 
npm ERR! code EACCES 
npm ERR! errno -13 
npm ERR! syscall access 

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/generator-jhipster' 
npm ERR!  at Error (native) 
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/generator-jhipster'] 
npm ERR! errno: -13, 
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'access', 
npm ERR! path: '/usr/local/lib/node_modules/generator-jhipster' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! Please include the following file with any support request: 
npm ERR!  /home/vagrant/npm-debug.log 

I've just updated your generators. Remember, you can update 
a specific generator with npm by running: 

    npm install -g generator-_______ 

Использование sudo будет делать то же самое и sudo su дать мне это, когда я пытаюсь запустить yo:

/usr/local/lib/node_modules/yo/node_modules/configstore/index.js:53 
       throw err; 
       ^

Error: EACCES: permission denied, open '/root/.config/configstore/insight-yo.json' 
You don't have access to this file. 

    at Error (native) 
    at Object.fs.openSync (fs.js:549:18) 
    at Object.fs.readFileSync (fs.js:397:15) 
    at Object.create.all.get (/usr/local/lib/node_modules/yo/node_modules/configstore/index.js:34:26) 
    at Object.Configstore (/usr/local/lib/node_modules/yo/node_modules/configstore/index.js:27:44) 
    at new Insight (/usr/local/lib/node_modules/yo/node_modules/insight/lib/index.js:37:34) 
    at Object.<anonymous> (/usr/local/lib/node_modules/yo/lib/cli.js:163:11) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 

EDIT:

Хорошо это не работы даже при локальной установке ... Ну шлюз делает переменный ток cess в реестр, но он отображает страницу отладки при попытке доступа к localhost: 8080. На самом деле, во время генерации я снова получаю permission denied и отсутствующие зависимости (gulp-rev).

Я просто увидел это: «Разумно использовать тег, чтобы иметь стабильную версию: теги JHipster DevBox те же, что и теги генератора JHipster, поэтому использование DevBox v3.2.0 также означает использование генератора v3. 2.0 "на странице DevBox GitHub, поэтому, возможно, я просто удалю и снова загружу DevBox ...

ответ

4

Это потому, что вы обновили реестр JHipster до версии 2.0.0. Эта новая версия защищена, и именно поэтому у вас есть 401 «ошибки без проверки», так как вы не указали логин/пароль для подключения.

3 решения:

  • Оставайтесь с более старой версией JHipster реестра, который соответствует вашей JHipster версии.
  • Добавьте логин/пароль (по умолчанию это admin/admin) к своим URL-адресам конфигурации Eureka и Spring Cloud. Подробная документация по защите реестра JHipster - here - она ​​неполна на момент написания этой статьи, но я скоро ее обновлю
  • Обновление до JHipster v3.2.1, предназначенное для использования с JHipster Registry v2.0.0, и где все будет автоматически настроено.
+0

Большое спасибо за ваш быстрый ответ. – CidTori

+0

Я думал о вашем первом решении при написании моего вопроса, он должен работать, поскольку он работал раньше. Я не знаю, как использовать второе решение, но я попробую. Для третьего решения я подумал, что уже обновил JHipster до последней версии, но я только заметил, что если я использую 'npm install -g generator-jhipster', он действительно установит версию 3.2.1, но yoman все еще использует версии 3.1.0, когда я запускаю 'yo jhipster', поэтому я не знаю точно, как его обновить. – CidTori

+0

Как-то просто набрав 'yo', чтобы войти в меню на основе cli, и обновление через него работает, а в командной строке' npm install -g generator-jhipster' нет. – coolnodje

0

Я нашел такое же поведение при использовании последнего реестра JHipster, извлеченного из github, работающего локально с IntelliJ IDEA - сервер запустится, но интерфейс не будет работать.

Оказалось, что проблема связана с пустым рабочим каталогом в конфигурации «Запуск/отладка». После того, как это заполнено, все работает на основе IDE.