Hi guys, I have a problem injecting multiple @JsonPath arguments using bean binding.
Here is my sample json: {"key1":"val1","key2":"val2"} My bean method processing that JSON: @Handler public void process(@JsonPath("$.key1") String value1, @JsonPath("$.key2") String value2) { System.out.println("Got key1: " + value1); System.out.println("Got key2: " + value2); } And my route: <route id="test"> <from uri="timer://foo?period=0&repeatCount=1" /> <to uri="http4:localhost:8084/example_json" /> <to uri="bean:myBean" /> </route> I got the following exception message: "Property ['key2'] not found in path $" (stacktrace: http://pastebin.com/TMrK4wC0) Everything works perfectly fine when I use only one @JsonPath method argument, key1 or key2 it doesn't matter. But it doesn't work with two arguments, regardless of their order. I always receive error message taht the second parameter is not found in path "$" regardless which one is second - key1 or key2. The weird thing is it works perfectly fine with JSON read from filesystem instead of http service: <route id="test"> <from uri="file:/tmp/example?noop=true" /> <to uri="bean:myBean" /> </route> Log messages indicate Camel reads the same file twice to evaluate two JsonPath expressions, but I'm not sure it it's true: 2016.05.20 07:29:04.600 DEBUG Camel (camel-1) thread #0 - file:///tmp/example org.apache.camel.component.file.GenericFileConverter - Read file /tmp/example/example.json (no charset) 2016.05.20 07:29:04.607 DEBUG Camel (camel-1) thread #0 - file:///tmp/example com.jayway.jsonpath.internal.CompiledPath - Evaluating path: $['key1'] Got key1: val1 2016.05.20 07:29:57.518 DEBUG Camel (camel-1) thread #0 - file:///tmp/example org.apache.camel.component.file.GenericFileConverter - Read file /tmp/example/example.json (no charset) 2016.05.20 07:29:57.525 DEBUG Camel (camel-1) thread #0 - file:///tmp/example com.jayway.jsonpath.internal.CompiledPath - Evaluating path: $['key2'] Got key2: val2 I'm using Apache Camel 2.17.1 with Jayway Json Path 2.0.0. BR, Grzegorz -- View this message in context: http://camel.465427.n5.nabble.com/Inject-multiple-JsonPath-parameters-to-bean-method-tp5782825.html Sent from the Camel - Users mailing list archive at Nabble.com.