0

我正在尝试使用 Heroku 运行 spring-cloud hello world。我正在尝试使用工头,我得到以下堆栈跟踪:

ERROR 6067 --- [main] o.s.boot.SpringApplication: Application startup failed
org.springframework.cloud.CloudException: No suitable cloud connector found
   at org.springframework.cloud.CloudFactory.getCloud(CloudFactory.java:55)
   at org.springframework.cloud.config.CloudScanHelper.initializeCloud(CloudScanHelper.java:85)
   at org.springframework.cloud.config.CloudScanHelper.registerServiceBeans(CloudScanHelper.java:55)
   at org.springframework.cloud.config.java.ServiceScanConfiguration.registerBeanDefinitions(ServiceScanConfiguration.java:22)
   at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:336)
   at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:149)
   at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:122)
   at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:318)
   at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239)
   at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)
   at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)
   at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
   at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109)
   at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:692)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:962)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:951)
   at com.trident.cloudexmachina.Application.main(Application.java:13)
   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:483)
   at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
   at java.lang.Thread.run(Thread.java:745)

我错过了一个“工头”连接器吗?

4

1 回答 1

1

好的,我将解释为什么我的问题是荒谬的以及如何“解决它”。

首先, spring-cloud-connectors项目中有一个localconfig-connector 。因此,您可以使用 Main 类 yadiyadiyada 以“旧方式”启动您的 Spring 应用程序。

然而,它只是部分地解决了问题,因为工头仍然应该被用来在本地启动应用程序,“就像 Heroku 一样”。但是,您将需要一个不同的 Procfile 或不同的 .env 文件来设置 JAVA_OPTS 并按照 localconfig-connector 的要求使用 -Dspring.cloud.appId=myappname ,如下所示:

JAVA_OPTS=$JAVA_OPTS -Dspring.cloud.appId=myappname
于 2014-10-04T19:08:29.573 回答