我正在尝试将Spring应用程序推送到PCF。这样做时,出现以下错误:用户提供的服务存在。
在类路径资源[com / * / / **** / * / /config/CloudConfig.class]中创建名称为“ dataSourceNWTC”的bean时出错。 :实例化bean失败;嵌套的异常是org.springframework.beans.factory.BeanDefinitionStoreException:工厂方法[public javax.sql.DataSource com。*****。。。。 .config。 CloudConfig.nwPrepDataSource()]引发异常;嵌套的异常是org.springframework.cloud.CloudException:未找到合适的ServiceConnectorCreator:服务id = dataSource-NWTC,服务信息type = org.springframework.cloud.service.BaseServiceInfo,连接器type = interface javax.sql.DataSource
我尝试了几种版本。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
<version>2.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
<version>2.0.6.RELEASE</version>
<repositories>
<repository>
<id>repository.springsource.milestone</id>
<name>SpringSource Milestone Repository</name>
<url>http://repo.springsource.org/milestone</url>
</repository>
@Configuration
@ServiceScan
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean(name = "dataSourceAIMS")
public DataSource aimsDataSource() {
return connectionFactory().dataSource("dataSource-AIMS");
}
@Bean(name = "dataSourceNWTC")
public DataSource nwPrepDataSource() {
return connectionFactory().dataSource("dataSource-NWTC");
}
}
applications:
- name: some-name
path: target/some-name-1.0-SNAPSHOT.war
random-route: true
buildpacks:
- java_buildpack_offline
services:
- dataSource-AIMS
- dataSource-NWTC
env:
SPRING_PROFILES_ACTIVE: cloud
答案 0 :(得分:0)
找不到合适的ServiceConnectorCreator
当Spring Cloud Connectors不知道如何根据VCAP_SERVICES
中的服务信息来创建服务对象时,您会看到此信息。查看VCAP_SERVICES
,查看服务类型是否为supported by SCC。另外,请查看并确认服务信息的结构是否可以理解受支持的数据库类型。
除此之外,我强烈建议您看看java-cfenv而不是Spring Cloud Connectors。我相信这将是Spring Cloud Connectors的继任者。
希望有帮助!