Spring 云数据流,未能遵循 HTTP 到 MySQL 演示

Spring Cloud Data Flow, failed to follow HTTP to MySQL Demo

我是 Spring 云数据流的新手。只是想按照官方演示 HTTP to MySQL 我创建了一个 MySQL 数据库 (ds_dev) 和一个 table (names) with:

create table names
(
  name  varchar(255) null
);

我按照说明创建了一个流:

stream create --name mysqlstream --definition "http --server.port=9010 | jdbc --tableName=names --columns=name --spring.datasource.driver-class-name=org.mariadb.jdbc.Driver --spring.datasource.url='jdbc:mysql://host.docker.internal:3306/ds_dev' --spring.datasource.username=root --spring.datasource.password='rootpw'" --deploy

然后我尝试 post 一些请求:

http post --contentType 'application/json' --target http://172.18.0.5:9010 --data "{\"name\": \"Foo\"}"

但是,我没有将新条目 "Foo" 插入到 table 中,而是插入了一个 Null 值。 jdbc 日志是这样的:

2019-08-06 19:10:10.838  INFO 598 --- [container-0-C-1] o.s.c.s.a.j.sink.JdbcSinkConfiguration   : Could not find value for column 'name': EL1008E: Property or field 'name' cannot be found on object of type 'byte[]' - maybe not public or not valid?

有什么建议吗?提前致谢!

不过,不幸的是,您在示例中看到的内容指向旧版本。它指向的 link 也会导致 404 - 对此感到抱歉。

请清理演示环境并使用最新的 Einstein 应用重试。在 Spring Cloud Stream 2.x 升级后,我们在 JDBC-sink 上遇到了一些问题,并且已在最近的版本中解决。

Kafka 的最新 Einstein 应用程序:http://dataflow.spring.io/kafka-maven-latest

(更多细节在reference guide

我们将通过以下方式修复示例中的虚假 URI:spring-cloud/spring-cloud-dataflow-samples#117