jdbc-source-XXX 应用程序的自定义 jdbc 驱动程序

Custom jdbc driver for jdbc-source-XXX application

我正在尝试将 MS SQL 驱动程序与带有本地数据流服务器的 jdbc 应用程序一起使用 jdbc --url='jdbc:sqlserver://server' --driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

不出所料,驱动程序不在类路径中,我得到 Cannot load driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver 部署流时。

我还尝试使用 -cp 参数调用数据流服务器:

java -cp "C:\path\to\msjdbc.jar " -jar spring-cloud-dataflow-server-local-1.0.1.RELEASE.jar - 结果相同。

谁能帮忙解决这个问题?

谢谢

local 数据流服务器在单独的进程中生成应用程序,并且不使用应用程序的类路径资源。因此,我认为您需要将驱动程序添加到 jdbc 应用程序路径中。或者,您可以尝试在部署流时为 app 设置 classpath 本地部署程序部署 属性。当指定spring.cloud.deployer.local.classpath 属性时,还需要指定属性 spring.cloud.deployer.local.main

stream create a1 --definition "time | jdbc"

stream deploy a1 --properties "app.jdbc.spring.cloud.deployer.local.classpath=/temp/myclasspath,app.jdbc.spring.cloud.deployer.local.main="

感谢 Ilayaperumal Gopinathan 的建议,它帮助我解决了问题。 看起来 app.jdbc.spring.cloud.deployer.local.classpathapp.jdbc.spring.cloud.deployer.local.main 的用法是未记录的功能,它对我不起作用(至少在 1.0.1.Release 中)

我已经按照 http://docs.spring.io/spring-cloud-stream-app-starters/docs/current-SNAPSHOT/reference/htmlsingle/#_patching_pre_built_applications.

中的文档成功修补了预构建的 jdbc 启动器并包含了 MS jdbc 驱动程序

它不适用于 1.0.1.Release,因为这个错误 (https://github.com/spring-cloud/spring-cloud-dataflow/issues/748) 在 1.1.0.Snapshot.

中得到解决

我不必指定任何列入白名单的属性,1.1.0.Snapshot 可以从内部 jar 中正确获取它们。