【问题标题】:No suitable ServiceConnectorCreator没有合适的 ServiceConnectorCreator
【发布时间】:2019-07-12 21:36:28
【问题描述】:

我正在尝试将 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,服务信息类型=org.springframework.cloud.service.BaseServiceInfo,连接器类型=接口 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

【问题讨论】:

    标签: cloud datasource cloud-foundry pcf pivotal-web-services


    【解决方案1】:

    找不到合适的 ServiceConnectorCreator

    当 Spring Cloud Connectors 不知道如何根据VCAP_SERVICES 中的服务信息创建服务对象时,您会看到这一点。查看VCAP_SERVICES,看看服务类型是否为supported by SCC。此外,查看并确认服务信息的结构符合受支持的数据库类型能够理解的方式。


    除此之外,我强烈建议您查看 java-cfenv 而不是 Spring Cloud Connectors。我相信它旨在成为 Spring Cloud Connectors 的继任者。

    https://spring.io/blog/2019/02/15/introducing-java-cfenv-a-new-library-for-accessing-cloud-foundry-services

    希望有帮助!

    【讨论】:

    • cf cups dataSource -p {"uri"} \n {uri}> oracle://:@:/ 这修复了问题。我想我错误地创建了服务。看起来您必须为连接器提供特定格式的 uri 以确定要使用的类型。
    • 是的,没错。 SCC 正在寻找 oracle://,尽管这不是典型的 Oracle JDBC URL 的样子。
    猜你喜欢
    • 2023-04-02
    • 2018-10-21
    • 2021-03-06
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多