I'm trying to configure streams like below (directly pipe from jdbc source to jdbc sink)
xd> stream create test2 --definition "output:jdbc --split=true --username=test --password=test --driverClassName=com.mysql.jdbc.Driver --url=jdbc:mysql://dbhost:3306/test --query='select id,name from test' | input:jdbc --username=test --password=test --driverClassName=com.mysql.jdbc.Driver --tableName=test2 --columns=id,name --url=jdbc:mysql://dbhost:3306/test" --deploy
but occurs ClassCastException.
Caused by: java.lang.ClassCastException: org.springframework.util.LinkedCaseInsensitiveMap cannot be cast to java.lang.String at org.springframework.xd.jdbc.JdbcMessagePayloadTransformer.transformPayload(JdbcMessagePayloadTransformer.java:39) at org.springframework.integration.transformer.AbstractPayloadTransformer.doTransform(AbstractPayloadTransformer.java:33) at org.springframework.integration.transformer.AbstractTransformer.transform(AbstractTransformer.java:33) ... 147 more
MySQL connection and table schema seems properly configured. connectivity already confirmed.
CREATE TABLE test (id int, name varchar(20)); CREATE TABLE test2 (id int, name varchar(20))
Spring XD version is 1.1.0.BUILD-20141103.163150-1-dist from zip below.
I want to store the payload data to target sink table, but is the functionality still experimental?
or, Is it the stream problem, for example just racks some kind of conversion?