2016-07-02 2 views
0

Я экспериментировал с потоком данных Spring Cloud (версия 1.0.0.M2) на Cloud Foundry. В частности, я использую Bluemix для своей задачи.Весенний облачный поток данных на Bluemix - ошибка примера кода

Я использовал эти ссылки успешно построить сервер Cloud Foundry: https://github.com/lshannon/spring-cloud-data-flow-demo

http://docs.spring.io/spring-cloud-dataflow-admin-cloudfoundry/docs/1.0.0.M2/reference/html/getting-started.html

Я начал сервер, подсоединил локальную оболочку, успешно зарегистрированы по умолчанию процессоров, поглотители и источники.

Переменные среды используются ($1,$2,$3,$4) мои персональные данные:

cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_API_ENDPOINT https://api.eu-gb.bluemix.net 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_ORGANIZATION $1 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE $2 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN eu-gb.mybluemix.net 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SERVICES redis01,rabbit 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_USERNAME $3 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_PASSWORD $4 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION false 

Я проверил эти переменные экземпляра Bluemix и все правильно.

Затем я попытался воссоздать базовый пример потока, используя оболочку, которая:

stream create luketicktock --definition "time | log" --deploy 

Выход оболочки:

Created and deployed new stream 'luketicktock' 

Однако, я не могу видеть любой развертывается Cloud Foundry приложения в состоянии для воспроизведения такого потока.

2016-07-02T18:27:34.74+0200 [RTR/0]  OUT approver-dataflow-v2.eu-gb.mybluemix.net - [02/07/2016:16:27:34 +0000] "GET /streams/definitions?page=0&size=10 HTTP/1.1" 200 0 387 "http://approver-dataflow-v2.eu-gb.mybluemix.net/admin-ui/index.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 159.122.215.10:39562 x_forwarded_for:"87.14.219.53" x_forwarded_proto:"http" vcap_request_id:781a16d0-9b21-4549-4403-3b95744b936a response_time:0.046310147 app_id:59f2c573-1b54-4480-81e3-6a064260820a x_global_transaction_id:"1105927831" 
2016-07-02T18:27:39.14+0200 [App/0]  OUT 2016-07-02 16:27:39.143 ERROR 29 --- [io-61588-exec-5] o.s.c.d.s.c.CloudFoundryAppDeployer  : Error creating app luketicktock-log 
2016-07-02T18:27:39.14+0200 [App/0]  OUT org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException: Error requesting access token. 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:145) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider.obtainAccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:221) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:173) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.createRequest(OAuth2RestTemplate.java:105) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:592) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:128) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:280) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$get$3(AbstractSpringOperations.java:85) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$null$1(AbstractSpringOperations.java:66) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxYieldingEmitter$YieldingSignalEmitter.request(FluxYieldingEmitter.java:75) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.util.DeferredSubscription.set(DeferredSubscription.java:71) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxSubscribeOn$SubscribeOnPipeline.onSubscribe(FluxSubscribeOn.java:129) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.subscriber.SignalEmitter.start(SignalEmitter.java:170) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxYieldingEmitter.subscribe(FluxYieldingEmitter.java:43) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:153) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:170) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.FluxSubscribeOn$SourceSubscribeTask.run(FluxSubscribeOn.java:363) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:919) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:883) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at reactor.core.publisher.WorkQueueProcessor$QueueSubscriberLoop.run(WorkQueueProcessor.java:842) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_91] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport$AccessTokenErrorHandler.handleError(OAuth2AccessTokenSupport.java:244) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:565) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:137) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:39.14+0200 [App/0]  OUT ... 24 common frames omitted 
2016-07-02T18:27:40.70+0200 [RTR/2]  OUT approver-dataflow-v2.eu-gb.mybluemix.net - [02/07/2016:16:27:40 +0000] "GET /streams/definitions?page=0&size=10 HTTP/1.1" 200 0 384 "http://approver-dataflow-v2.eu-gb.mybluemix.net/admin-ui/index.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 159.122.215.11:30146 x_forwarded_for:"87.14.219.53" x_forwarded_proto:"http" vcap_request_id:ecaaca33-cc82-4c4e-4cd8-c81a431c4f4f response_time:0.009798874 app_id:59f2c573-1b54-4480-81e3-6a064260820a x_global_transaction_id:"3460948721" 
2016-07-02T18:27:43.51+0200 [App/0]  OUT 2016-07-02 16:27:43.519 ERROR 29 --- [io-61588-exec-5] o.s.c.d.s.c.CloudFoundryAppDeployer  : Error creating app luketicktock-time 
2016-07-02T18:27:43.51+0200 [App/0]  OUT org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException: Error requesting access token. 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:145) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider.obtainAccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:221) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:173) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.createRequest(OAuth2RestTemplate.java:105) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:592) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.51+0200 [App/0]  OUT at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:128) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:280) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$get$3(AbstractSpringOperations.java:85) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$null$1(AbstractSpringOperations.java:66) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxYieldingEmitter$YieldingSignalEmitter.request(FluxYieldingEmitter.java:75) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.util.DeferredSubscription.set(DeferredSubscription.java:71) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxSubscribeOn$SubscribeOnPipeline.onSubscribe(FluxSubscribeOn.java:129) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.subscriber.SignalEmitter.start(SignalEmitter.java:170) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxYieldingEmitter.subscribe(FluxYieldingEmitter.java:43) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:153) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:170) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.FluxSubscribeOn$SourceSubscribeTask.run(FluxSubscribeOn.java:363) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:919) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:883) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at reactor.core.publisher.WorkQueueProcessor$QueueSubscriberLoop.run(WorkQueueProcessor.java:842) ~[reactor-core-2.5.0.M3.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_91] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport$AccessTokenErrorHandler.handleError(OAuth2AccessTokenSupport.java:244) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:565) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:137) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na] 
2016-07-02T18:27:43.52+0200 [App/0]  OUT ... 24 common frames omitted 

Похоже, что сервер потока данных не смог запросить маркер доступа к Bluemix для создания потока. Я сделал что-то не так?

Спасибо за вашу поддержку!

+0

Я только что пробовал с серверной версией 1.0.0.M3 на Bluemix, и я получил ту же ошибку. Чтобы быть уверенным, что я пробовал пробную учетную запись на Pivotal PAAS, все работает отлично. Так что это проблема, связанная с реализацией Cloudemery от Bluemix ... возможно, это связано с https://github.com/cloudfoundry/cf-java-client/issues/513 – Luca

ответ

0

Это обычно наблюдается при развертывании в Cloud Foundry без действительного самозаверяющего сертификата. Если это находится в среде разработки, вы можете пропустить проверку SSL на следующее.

cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION true

На сегодняшний день, Spring Cloud Data Flow "ядро" находится в RC1 и Cloud Foundry implementation находится на М3. Как указано в RC1 blog, появилось несколько новых улучшений наряду с изменениями терминов, поэтому рекомендуется обновить до последней версии.

+0

К сожалению, я тоже не пробовал этот подход , Дело в том, что единственная версия, которая работает, это 1.0.0.M1, потому что она предоставляет: SECURITY_OAUTH2_CLIENT_ACCESS_TOKEN_URI' и 'SECURITY_OAUTH2_CLIENT_USER_AUTHORIZATION_URI', которые в случае Bluemix соответствуют:' https://login.eu-gb.bluemix.net/ UAALoginServerWAR/oauth/token' и 'https: // login.eu-gb.bluemix.net/UAALoginServerWAR/oauth/authorize'. К сожалению, более поздние версии этого не позволяют. См. [Ref] (http://docs.spring.io/autorepo/docs/spring-cloud-dataflow/1.0.0.M1/reference/htmlsingle/#_deploying_on_cloud_foundry) – Luca

+0

См. Комментарий в [# 772] (https://github.com/spring-cloud/spring-cloud-dataflow/issues/772) –

+0

К несчастью, я не смог решить проблему, используя ваши комментарии.Я подозреваю, что проблема связана с базовым cf-client-java, используемым сервером DataFlow, который не работает в процедуре входа в систему с окружением Bluemix, как указано [здесь] (https://github.com/cloudfoundry/cf-java- клиент/проблемы/513). – Luca