2016-11-08 121 views
0

我試圖使用MS SQL驅動程序與本地數據流服務器JDBC應用 jdbc --url='jdbc:sqlserver://server' --driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver 爲JDBC源-XXX應用程序定製JDBC驅動程序

正如預期的那樣,駕駛員是不是在classpath中,我得到 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

感謝您的建議Ilayaperumal Gopinathan,它幫助我解決了這個問題。 貌似的app.jdbc.spring.cloud.deployer.local.classpathapp.jdbc.spring.cloud.deployer.local.main的使用是無證功能,它並沒有爲我(以免與1.0.1.Release的)工作

我已經設法修補預先建立的JDBC啓動,包括MS JDBC驅動程序遵循http://docs.spring.io/spring-cloud-stream-app-starters/docs/current-SNAPSHOT/reference/htmlsingle/#_patching_pre_built_applications的文檔。

由於在1.1.0.Snapshot中已解決的此錯誤(https://github.com/spring-cloud/spring-cloud-dataflow/issues/748),它不適用於1.0.1.Release。

我沒有必要指定任何白名單的屬性,並且1.1.0.Snapshot從內部jar中正確地選取了它們。

+0

感謝Alexander試用和輸入。這些功能剛添加完畢,我們會盡早處理文檔。 –

1

local數據流服務器將在一個單獨的進程中的應用程序,並且不使用類路徑資源的應用程序。因此,我認爲您需要將驅動程序添加到jdbc應用程序路徑中。或者,您可以嘗試在部署流時爲app設置classpath本地部署者部署屬性。當指定spring.cloud.deployer.local.classpath屬性時,還需要指定屬性spring.cloud.deployer.local.main

流創建A1 --definition 「時間| JDBC」

流部署A1 --properties「app.jdbc.spring.cloud.deployer.local.classpath = /溫度/ myclasspath,app.jdbc.spring .cloud.deployer.local.main =「

+0

謝謝,它確實有道理,在這種情況下應該是什麼'main'? –

+0

這是應用程序的Java主應用程序類。如果你使用開箱即用的'jdbc'接收器,'app'有'rabbit'聯編程序,那麼你的'main'類是:'org.springframework.cloud.stream.app.jdbc.sink.rabbit。 JdbcSinkRabbitApplication'。 –

+0

我已經嘗試了你的建議,但這些部署屬性有些如何從'deploymentProperties'映射中分出來。我運行了遠程調試器,發現它們正確地傳遞給'StreamDeploymentController',但是當我到達'AbstractLocalDeployerSupport :: buildExecutionCommand'方法時,它們從'AppDeploymentRequest'消失。 –