方法调用:在 org.springframework.integration.x.gemfire.JsonStringToObjectTransformer 上找不到方法 toObject(java.util.LinkedHashMap)
Method call: Method toObject(java.util.LinkedHashMap) cannot be found on org.springframework.integration.x.gemfire.JsonStringToObjectTransformer
我在 Spring XD 和 gemfire
中遇到以下问题
nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 8): Method call: Method toObject(java.util.LinkedHashMap) cannot be found on org.springframework.integration.x.gemfire.JsonStringToObjectTransformer type.
知道如何解决这个问题吗?
以下是我们如何重现此问题:
stream create json_test --definition "trigger --fixedDelay=1 |
transform --expression='''{node1 : {node2 : {data1:hello, data2: world}}}''' |
splitter --expression=#jsonPath(payload,'$.node1.node2') |
log" --deploy`
我们期望 {data1:hello, data2:world}
但我们得到 {data1=hello, data2=world}
导致了问题。
这个问题的解决方案是什么?
gemfire-json-server
接收器只能处理传入的字符串 JSON 有效负载;看起来您正在以某种方式提供 LinkedHashMap
。
这可能意味着你已经运行它通过一些JSON到对象的转换或转换。
编辑
拆分器生成 LinkedHashMap
- 指定 outputType
将其转换为 JSON...
xd:>stream create json_test --definition "trigger --fixedDelay=1 |
transform --expression='''{node1 : {node2 : {data1:hello, data2: world}}}''' |
splitter --expression=#jsonPath(payload,'$.node1.node2') --outputType=application/json |
log" --deploy
结果...
2017-06-14T09:52:10-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}
2017-06-14T09:52:11-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}
2017-06-14T09:52:12-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}
我在 Spring XD 和 gemfire
中遇到以下问题nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 8): Method call: Method toObject(java.util.LinkedHashMap) cannot be found on org.springframework.integration.x.gemfire.JsonStringToObjectTransformer type.
知道如何解决这个问题吗?
以下是我们如何重现此问题:
stream create json_test --definition "trigger --fixedDelay=1 |
transform --expression='''{node1 : {node2 : {data1:hello, data2: world}}}''' |
splitter --expression=#jsonPath(payload,'$.node1.node2') |
log" --deploy`
我们期望 {data1:hello, data2:world}
但我们得到 {data1=hello, data2=world}
导致了问题。
这个问题的解决方案是什么?
gemfire-json-server
接收器只能处理传入的字符串 JSON 有效负载;看起来您正在以某种方式提供 LinkedHashMap
。
这可能意味着你已经运行它通过一些JSON到对象的转换或转换。
编辑
拆分器生成 LinkedHashMap
- 指定 outputType
将其转换为 JSON...
xd:>stream create json_test --definition "trigger --fixedDelay=1 |
transform --expression='''{node1 : {node2 : {data1:hello, data2: world}}}''' |
splitter --expression=#jsonPath(payload,'$.node1.node2') --outputType=application/json |
log" --deploy
结果...
2017-06-14T09:52:10-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}
2017-06-14T09:52:11-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}
2017-06-14T09:52:12-0400 1.3.1.RELEASE INFO task-scheduler-2 sink.json_test - {"data1":"hello","data2":"world"}