我试图将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
- 结果相同。
有人可以帮忙解决这个问题吗?
由于
答案 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.classpath
和app.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中正确地拾取它们。