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

时间:2016-11-08 12:09:10

标签: spring-cloud-stream spring-cloud-dataflow

我试图将jdbc app的MS SQL驱动程序与本地数据流服务器一起使用 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 - 结果相同。

有人可以帮忙解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:1)

local数据流服务器在单独的进程中生成应用程序,并且不使用应用程序的类路径资源。因此,我认为您需要将驱动程序添加到jdbc应用程序路径中。或者,您可以在部署流时尝试为classpath设置app本地部署程序部署属性。指定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 =”

答案 1 :(得分:0)

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

我已设法修补预先构建的jdbc启动程序,并按照http://docs.spring.io/spring-cloud-stream-app-starters/docs/current-SNAPSHOT/reference/htmlsingle/#_patching_pre_built_applications的文档包含MS jdbc驱动程序。

由于此错误(https://github.com/spring-cloud/spring-cloud-dataflow/issues/748)在1.1.0.Snapshot中已解决,因此无法使用1.0.1.Release。

我没有必要指定任何列入白名单的属性,1.1.0.Snapshot从内部jar中正确地拾取它们。