使用: Pivotal v2.x,Spring数据流服务器v1.6.2.RELEASE,Server 2016。
如果服务器数据源配置不是绑定到PCF中的应用程序的服务,则该配置似乎不会成功地创建数据源。
Server数据库不是在我们的PCF市场中提供的服务。我重新构建了服务器应用程序,并将server驱动程序jar添加到类路径中。我还包括数据源配置:
---
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实例的情况下,说明一个未解决的依赖项。
下面是一些堆栈跟踪:
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服务器绑定到不驻留在基础中的数据源?
发布于 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-服务器时坚持单一模型。当然,在这种情况下,最简单的解决方案是完全禁用连接器。
https://stackoverflow.com/questions/52952983
复制相似问题