Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Pivotal Cloud Foundry Plus MySql数据库 我在Pivotal Cloud Foundry上有一个正在运行的web服务应用程序 我添加了一个MySql DB服务,并将其与web服务应用程序绑定 我的问题是如何在(SpringBoot)中使用JavaAPI和CloudFoundryAPI获取Sql数据库的数据源_Spring Boot_Cloud Foundry_Pivotal Web Services - Fatal编程技术网

Spring boot Pivotal Cloud Foundry Plus MySql数据库 我在Pivotal Cloud Foundry上有一个正在运行的web服务应用程序 我添加了一个MySql DB服务,并将其与web服务应用程序绑定 我的问题是如何在(SpringBoot)中使用JavaAPI和CloudFoundryAPI获取Sql数据库的数据源

Spring boot Pivotal Cloud Foundry Plus MySql数据库 我在Pivotal Cloud Foundry上有一个正在运行的web服务应用程序 我添加了一个MySql DB服务,并将其与web服务应用程序绑定 我的问题是如何在(SpringBoot)中使用JavaAPI和CloudFoundryAPI获取Sql数据库的数据源,spring-boot,cloud-foundry,pivotal-web-services,Spring Boot,Cloud Foundry,Pivotal Web Services,我尝试过的事情: public class Configuration { @Configuration @Profile("cloud") static class CloudConfiguration { @Bean public DataSource dataSource() { CloudFactory cloudFactory = new CloudFact

我尝试过的事情:

 public class Configuration {
        @Configuration
        @Profile("cloud")
        static class CloudConfiguration {
            @Bean
            public DataSource dataSource() {
                CloudFactory cloudFactory = new CloudFactory();
                Cloud cloud = cloudFactory.getCloud();
                String serviceID = cloud.getServiceID();
                return cloud.getServiceConnector(serviceID, DataSource.class, null);
            }
 }
执行的方法:

Configuration.CloudConfiguration cloudConfiguration = new CloudConfiguration();
        cloudConfiguration.dataSource();
我得到的错误是:

我从这段代码中得到CloudException,就像没有找到合适的CloudConnector一样,
getCloud()
方法抛出CloudException

清单文件详细信息:

applications:
    - name: springboot-cloudfoundry
      memory: 512M
      instances: 1
      path: target/springboot-cloudfoundry-0.0.1-SNAPSHOT.jar
      buildpack: https://github.com/cloudfoundry/java-buildpack
      env:
        SPRING_PROFILES_ACTIVE : cloud

    POM File:
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-spring-service-connector</artifactId>

        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-cloudfoundry-connector</artifactId>

        </dependency>

Stack Trace:
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.cloud.config.java.CloudScanConfiguration.registerBeanDefinitions(CloudScanConfiguration.java:22)
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:344)
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:151)
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:124)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:318)
    at org.springframework.ide.eclipse.metadata.process.JdtConfigurationClassPostProcessor.postProcess(JdtConfigurationClassPostProcessor.java:88)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$3.run(BeansJavaConfig.java:328)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.executePostProcessor(BeansJavaConfig.java:321)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.access$5(BeansJavaConfig.java:319)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$2.call(BeansJavaConfig.java:233)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$2.call(BeansJavaConfig.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    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)
应用程序:
-名称:springboot cloudfoundry
内存:512M
实例:1
路径:target/springboot-cloudfoundry-0.0.1-SNAPSHOT.jar
构建包:https://github.com/cloudfoundry/java-buildpack
环境:
SPRING\u配置文件\u活动:云
POM文件:
org.springframework.cloud
弹簧云弹簧服务连接器
org.springframework.cloud
SpringCloudFoundry连接器
堆栈跟踪:
org.springframework.cloud.CloudException:未找到合适的云连接器
位于org.springframework.cloud.CloudFactory.getCloud(CloudFactory.java:55)
位于org.springframework.cloud.config.CloudScanHelper.initializeCloud(CloudScanHelper.java:85)
位于org.springframework.cloud.config.CloudScanHelper.registerServiceBeans(CloudScanHelper.java:55)
位于org.springframework.cloud.config.java.ServiceScanConfiguration.registerBeanDefinitions(ServiceScanConfiguration.java:22)
位于org.springframework.cloud.config.java.CloudScanConfiguration.registerBeanDefinitions(CloudScanConfiguration.java:22)
位于org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.LoadBeanDefinitionsFromRegisters(ConfigurationClassBeanDefinitionReader.java:344)
位于org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:151)
位于org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:124)
位于org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:318)
位于org.springframework.ide.eclipse.metadata.process.JdtConfigurationClassPostProcessor.postProcess(JdtConfigurationClassPostProcessor.java:88)
位于org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$3.run(BeansJavaConfig.java:328)
位于org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
位于org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.executePostProcessor(BeansJavaConfig.java:321)
位于org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.access$5(BeansJavaConfig.java:319)
位于org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$2.call(BeansJavaConfig.java:233)
位于org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig$2.call(BeansJavaConfig.java:1)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)

1将以下依赖项添加到pom.xml中

    <dependency>
        <groupId>io.pivotal.spring.cloud</groupId>
        <artifactId>spring-cloud-services-starter-config-client</artifactId>
    </dependency>


未找到合适的CloudConnector
消息通常意味着Spring Cloud Connector代码未看到
VCAP_应用程序
VCAP_服务
环境变量。
getCloud()方法抛出CloudException
消息是不寻常的。是否有堆栈跟踪来处理该异常?堆栈跟踪已更新。如何设置这些变量VCAP_应用程序和VCAP_服务,我希望从云获取它,就像从CLI命令获取它一样。有没有办法做到这一点,我不想把它们放在属性文件中,当应用程序在CF上运行时,这两个环境变量应该自动设置。如果您试图以在CF上运行的相同方式在本地测试应用程序,则需要在应用程序环境中手动设置它们。您使用的是什么CF风格?Pivotal Cloud Foundry、Blue Mix、SAP、Suse、OSS?
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-spring-service-connector</artifactId>
    <version>1.2.3.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
    <version>1.2.3.RELEASE</version>
</dependency>
public class CloudConfig extends AbstractCloudConfig {
        @Bean
        public DataSource dataSource() {
            DataSource dataSource = connectionFactory().dataSource();
            return dataSource;
        }
}
public class CloudConfig extends AbstractCloudConfig {
        @Bean
        public DataSource inventoryDataSource() {
            return connectionFactory().dataSource("mysql-db-service");
        }
}