使用来自 buildpack 的 SQL 驱动程序在 Pivotal Cloud Foundry 上部署具有多个数据源的应用程序

Use SQL driver from buildpack to deploy app with multiple datasources on Pivotal Cloud Foundry

我有一个 war 应用程序,我希望使用多个 mysql 服务来部署和配置它。当应用程序绑定到一个 mysql 服务时,PCF 使用 java-buildpack 下载的 SQL 驱动程序自动配置数据源。我想避免将驱动程序打包到 war 文件中。有没有办法在没有自动配置的情况下使用 buildpack 中的驱动程序?

java-buildpack documentation on GitHub 似乎暗示如果服务被命名或标记为 "mysql" 那么驱动程序将被下载并放置在类路径中:

A user-provided MariaDB or MySQL service must have a name or tag with mariadb or mysql in it so that the MariaDB JDBC Framework will automatically download the JDBC driver JAR and place it on the classpath.

但是我的两项服务都标记有 "mysql":

"name": "database1",
"tags": [
  "mysql",
  "relational"
]

但是启动应用程序时return报错:

Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.jdbc.Driver

并且在暂存应用程序时,未下载 JDBC 驱动程序。

documentation link you referenced 还列出了要执行的功能的要求:

Existence of a single bound MariaDB or MySQL service and no provided MariaDB or MySQL JDBC JAR.

那里的关键词是单身。这就是为什么当您绑定了两个服务时它不起作用的原因。

我不确定您能做些什么。当只有一个 MySQL 服务绑定时它会工作,但不会超过一个。这是定义的行为。

未来的选择:提交一个 Github 问题并要求支持您的用例,将 JDBC 驱动程序与您的应用程序打包。