Реестр JHipster отклоняет шлюзы и микросервисы
Я пытаюсь использовать JHipster для проекта, использующего микросервисы, но последний реестр JHipster не позволяет моему шлюзу или микросервисам получить доступ к серверу конфигурации и отклоняет их.
Я установил Jhipster Vagrant DevBox, а затем использовал docker run -p 8761:8761 jhipster/jhipster-registry для запуска реестра JHipster.
Затем я сгенерировал шлюз и 2 микросервиса, следующие за этим, и это сработало.
Но затем я захотел использовать реестр JHipster из GitHub, поэтому я клонировал его и запустил (по-видимому, он был был обновлен до 2.0.0 в то же время). К сожалению, шлюз и микросервисы не смогли получить доступ к этому реестру. Они все еще могли получить доступ к реестру образов Docker (я полагаю, что Docker не обновлял его). Но поскольку он был более модным и, вероятно, более современным, я хотел использовать последнюю версию реестра, такую же, как и на GitHub. Поэтому я попытался обновить реестр Docker image Jhipster с помощью docker pull. И теперь он не будет работать ни с registry-Docker image, ни с GitHub клон.
Когда реестр запущен и я запускаю шлюз или микросервис, я получаю в 6 раз больше:
2016-05-10 15:39:07.511 DEBUG 20706 --- [ main] s.n.www.protocol.http.HttpURLConnection : sun.net.www.MessageHeader@86ba8f5 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 : sun.net.www.MessageHeader@43c7802510 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
Я пытался обновить все, и в настоящее время я пытаюсь понизить уровень вещей (так как doc говорит: "мы рекомендуем вам использовать тот же тег версии, что и вы используйте для вашего генератора JHipster", но я не думаю, что это будет работать, так как последняя версия реестра JHipster-2.0.0, а генератор JHipster представил микросервисы с версией 3.0), и я также попытался скопировать секрет непосредственно из конфигурации центрального сервера в конфигурацию приложений, но, по-видимому, безрезультатно.
Не могли бы вы помочь мне с этим ?
Заранее большое вам спасибо.
Правка:
Я попытался обновить JHipster до версии 3.2.1, используя npm install -g generator-jhipster, что, по-видимому, сработало, но когда я запускаю yo jhipster, Йомен все еще использует JHipster 3.1.0. На самом деле, даже если я удалю JHipster с помощью npm uninstall -g generator-jhipster, Yeoman все равно сможет использовать JHipster 3.1.0...
Правка:
Это прекрасно работает, если я переустановлю все локально (в каталоге, где я использую yo jhipster).
Однако я все еще не могу обновить jhipster глобально в Yeoman. Когда я пытаюсь использовать npm install -g generator-jhipster, он обновляет jhipster глобально до 3.2.1, но Yeoman все еще использует 3.1.0. Если я попытаюсь обновить JHipster с помощью yo/ " обновить ваш generators " / generator-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)
Правка:
Ок он делает Не работать даже с локальной установкой...
Ну, шлюз имеет доступ к реестру, но он отображает страницу отладки, Когда я пытаюсь получить доступ к localhost: 8080.
На самом деле, во время генерации я снова получаю permission denied и отсутствующие зависимости (gulp-rev).
Я только что видел это: "это разумно использовать тег, чтобы иметь стабильную версию: теги Jhipster DevBox такие же, как теги генератора JHipster, поэтому использование DevBox v3.2.0 также означает использование генератора v3.2.0" на странице DevBox GitHub, поэтому, возможно, я просто удалю и снова загружу DevBox...
2 ответов:
Это связано с тем, что вы обновили реестр JHipster до версии 2.0.0. Эта новая версия защищена, и именно поэтому у вас есть 401 "неавторизованная" ошибка, так как вы не предоставили логин/пароль для подключения.
3 решения:
- оставайтесь со старой версией реестра JHipster, которая соответствует вашей версии JHipster.
- Добавьте логин / пароль (по умолчанию это admin/admin) к вашим URL-адресам конфигурации Eureka и Spring Cloud. Подробная документация по обеспечению безопасности JHipster Реестр здесь - он неполон на момент написания этой статьи, но я обновлю его в ближайшее время
- обновление до JHipster v3. 2. 1, который предназначен для использования с Jhipster Registry v2.0.0, и где все будет автоматически настроено.
Я обнаружил то же самое поведение при использовании последнего реестра JHipster, извлеченного из github, работающего локально с IntelliJ IDEA-сервер запускался, но интерфейс не обслуживался.
Это оказалось проблемой с пустым рабочим каталогом в конфигурации Run / Debug. Как только это заполнено, все работает из IDE.
Comments