2017-06-13 2 views
0

Ich bin vor das folgende Problem im Frühjahr XD und GemfireAufruf Methode: Methode toObject (java.util.LinkedHashMap) nicht auf org.springframework.integration.x.gemfire.JsonStringToObjectTransformer finden

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. 

Jede Idee Wie behebt man das?

Es folgt, wie wir dieses Problem replizieren können:

stream create json_test --definition "trigger --fixedDelay=1 | 
transform --expression='''{node1 : {node2 : {data1:hello, data2: world}}}''' | 
splitter --expression=#jsonPath(payload,'$.node1.node2') | 
log" --deploy` 

Was wir {data1:hello, data2:world} erwarten, aber wir bekommen {data1=hello, data2=world}, die das Problem verursacht.

Was ist die Lösung für dieses Problem?

+1

Können Sie die Frage bearbeiten zu konvertieren um den vollständigen Stack-Trace sowie deine Stream-Definition anzuzeigen? –

Antwort

1

Die gemfire-json-server-Senke kann nur eingehende JSON-Nutzdaten verarbeiten. es sieht so aus, als ob Sie irgendwie eine LinkedHashMap liefern.

Es bedeutet wahrscheinlich, dass Sie es durch einige JSON ausgeführt haben, um Transformation oder Konvertierung von Objekten durchzuführen.

EDIT

Der Splitter erzeugt ein LinkedHashMap - eine outputType geben es zu 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 

Ergebnis ...

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"} 
+0

Danke für die Antwort, könntest du bitte den Beispielstream sehen, den ich in der Frage hinzugefügt habe. Bitte schlagen Sie eine Lösung vor. – Unnikrishnan

+0

Siehe meine Bearbeitung - Sie müssen die '# jsonPath'-Ausgabe zurück in JSON konvertieren. –

+0

Vielen Dank jetzt funktioniert es gut. – Unnikrishnan