首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudfoundry -外部数据源的Spring数据流服务器

Cloudfoundry -外部数据源的Spring数据流服务器
EN

Stack Overflow用户
提问于 2018-10-23 15:40:43
回答 1查看 344关注 0票数 0

使用: Pivotal v2.x,Spring数据流服务器v1.6.2.RELEASE,Server 2016。

如果服务器数据源配置不是绑定到PCF中的应用程序的服务,则该配置似乎不会成功地创建数据源。

Server数据库不是在我们的PCF市场中提供的服务。我重新构建了服务器应用程序,并将server驱动程序jar添加到类路径中。我还包括数据源配置:

代码语言:javascript
复制
---
applications: 
- path: spring-cloud-dataflow-server-cloudfoundry-1.6.2.RELEASE.jar
  name: dataflow-server
  host: dataflow-server
  memory: 4096M
  disk_quota: 2048M
  no-route: false
  no-hostname: false
  health-check-type: 'port' 
  buildpack: java_buildpack_offline
  env: 
    JAVA_OPTS: -Dhttp.keepAlive=false
    JBP_CONFIG_CONTAINER_CERTIFICATE_TRUST_STORE: '{enabled: true}' 
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE: channing
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_APP_NAME_PREFIX: channing
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_URL: https://api.pcf.com
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN: pcf.com
    SPRING_APPLICATION_NAME: dataflow-server
    SPRING_DATASOURCE_URL: jdbc:sqlserver://nonpcf.sqlserver.com\\DBINSTANCE:1713;databaseName=SCDF_DEV 
    SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.microsoft.sqlserver.jdbc.SQLServerDriver
    SPRING_DATASOURCE_USERNAME: username
    SPRING_DATASOURCE_PASSWORD: password
  services: 
    - config-server
    - rabbit
  security: 
    basic: 
      enabled: true
      realm: Spring Cloud Data Flow
  spring: 
    cloud: 
      dataflow: 
        features: 
          analytics-enabled: false

此错误发生在应用程序启动期间,在没有可用注入的唯一javax.sql.DataSource实例的情况下,说明一个未解决的依赖项。

下面是一些堆栈跟踪:

代码语言:javascript
复制
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] Caused by: org.springframework.cloud.CloudException: No unique service matching interface javax.sql.DataSource found. Expected 1, found 0
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.Cloud.getSingletonServiceConnector(Cloud.java:197) ~[spring-cloud-connectors-core-2.0.2.RELEASE.jar!/:na]
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.config.java.CloudServiceConnectionFactory.dataSource(CloudServiceConnectionFactory.java:56) ~[spring-cloud-spring-service-connector-2.0.2.RELEASE.jar!/:na]
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.dataflow.server.cloudfoundry.config.DataSourceCloudConfig.scdfCloudDataSource(DataSourceCloudConfig.java:47) ~[spring-cloud-dataflow-server-cloudfoundry-autoconfig-1.6.2.RELEASE.jar!/:1.6.2.RELEASE]

这是故意的吗?如何将PCF服务器绑定到不驻留在基础中的数据源?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 22:52:33

Spring数据流的CF-服务器基于依赖Spring连接器实现datasource连接池定制的观点。

由于我们故意这样做是为了利用库提供的自动化,所以我们无法在SCDF本身中直接关闭它。

但是,有一个选项可以关闭Spring来完全干扰,并且该选项可以作为Spring属性(即spring.cloud=false)使用,这也适用于SCDF。

通过在CF-服务器上设置该属性,您可以使用SPRING_DATASOURCE_*属性创建连接池,就像在上面的manifest.yml中如何定义它一样。

更新

背景:声明式datasource重写和Spring (在类路径中)是相互排斥的,它们不能以任何身份一起工作。

因此,建议在定制CF-服务器时坚持单一模型。当然,在这种情况下,最简单的解决方案是完全禁用连接器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52952983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档