Spring XD - JDBC Sink配置|列:选项名为'列'不受支持

时间:2014-05-23 18:27:53

标签: jdbc spring-xd sink

我使用的是spring-xd-1.0.0.M6。

我尝试将mysql DB配置为Spring-xd的接收器

我关注 - http://theblasfrompas.blogspot.in/2014/01/springxd-filetail-input-ingestion-jdbc.html

我把我的jdbc.properties文件放在

1)spring-xd-1.0.0.M6/xd/modules/sink/jdbc/config位置

2)我把mysql连接器jar放在

spring-xd-1.0.0.M6/xd/lib

我创建了一个文件 - input.txt并将其放在文件夹中 - /<some path>/temp/input.txt

该文件包含

{"id":"1","name":"pas"}
{"id":"2","name":"lucia"}
{"id":"3","name":"lucas"}
{"id":"4","name":"siena"}

jdbc文件包含以下信息。

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/spring_xd
username=root
password=root

现在在XD shell中执行以下

stream create --name filetest --definition "tail --name='/<some path>/temp/input.txt' |  jdbc --columns='id,name'" --deploy

我的my-sql数据库表名是 - file_test,它有2列id和name - 与Example Link

中提到的相同

但是我得到了

Command failed org.springframework.xd.rest.client.impl.SpringXDException: Error with option(s) for module jdbc of type sink:
    columns: option named 'columns' is not supported

如果我指定tableName参数,我也得到..

tableName: option named 'tableName' is not supported

我也提到了 - https://github.com/spring-projects/spring-xd/pull/621

但是线索少......使用最新的Spring-xd版本

1 个答案:

答案 0 :(得分:0)

放置.properties文件的目录不是为了配置模块,而是声明哪些选项可用。通过把它放在那里,你基本上宣称jdbc模块没有选项(因为你实际上没有使用正确的语法)。

相反,您需要将您提到的.properties文件放在其他位置。请注意,拾取的确切位置在不同版本之间发生了变化。我建议使用最新版本(撰写本文时为M7)。然后,正确的位置是

${xd.home}/config/modules/sink/jdbc/jdbc.properties

而不是

${xd.home}/modules/sink/jdbc/config/jdbc.properties   

请注意,XD版本目前提供了开箱即用的文件,其内容如下:

url = ${spring.datasource.url}
driverClassName = ${spring.datasource.driverClassName}
username = ${spring.datasource.username}
password = ${spring.datasource.password}

这是为了让jdbc模块使用默认情况下server.yml中定义的值