提问者:小点点

在String类型上找不到方法getValue(java.lang.String)java.lang.


全部

我使用本地服务器运行spring云数据流。当我运行这样定义的流时

http --port=8787 | transform --expression=payload.getValue('name') |
jdbc --columns=name --table-name=http_table --password=******
--driver-class-name=org.mariadb.jdbc.Driver --username=root --url='jdbc:mysql://127.0.0.1:3306/target_data'

我使用处理器转换

transform --expression=payload.getValue('name')

但它有这样的错误。

2017-09-16 20:01:57,561 ERROR-Kafka-侦听器-1 o. s. k. l. LoggingError Handler: 37-处理时出错:消费者记录(主题=http_jdbc04.http,分区=0,偏移量=0,CreateTime=1505563314419,校验和=1043955671,序列化密钥大小=-1,序列化值大小=102,密钥=null,值=[B@5b1b4ce3)org.springframework.integration.transformer.MessageTransformation异常:转换消息失败;嵌套异常是org.springframework.messaging.MessageHandling异常:嵌套异常是org.springframework.expression.spel.SpelE的异常:EL1004E:方法调用:在java.lang.字符串类型上找不到方法getValue(java.lang.String),失败消息=通用消息[有效载荷={"name":"world"},标头={kafka_offset=0,id=0392ca58-6644-91fb-9454-a41e83854955,kafka_receivedPartitionId=0,内容类型=应用程序/json;charset=UTF-8,kafka_receivedTopic=http_jdbc04.http,time

以下是我关注的Spring云数据流文档

以及Spring云数据流版本:

1.spring云数据流本地服务器1.2.3.RELEASE

2.Java:1.8.0


共1个答案

匿名用户

我解决了这个问题。

这是行不通的:

transform --expression=payload.getValue('name')

您应该使用< code>#jsonPath(有效负载,