Hello Marco, When I reread you post I saw that you have a Json marshal as a separate filter in your route. In that case your processor should probably just set the node object in the body and let the marshal component create the Json. ---------- ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode();
node.put("ticker" , item.getShare().getTicker()); node.put("name", item.getShare().getName()); node.put("price", item.getShare().getPrice()); node.put("latest", item.getLatestPrice().getLatestPrice()); if(ptfData != null) { exchange.getOut().setBody(node); } ---------- // Pontus On Sat, Sep 1, 2012 at 1:35 PM, Marco Mistroni <mmistr...@gmail.com> wrote: > thanks a lot Pontus! > > w/kindest regards > marco > > On Sat, Sep 1, 2012 at 9:05 AM, Pontus Ullgren <ullg...@gmail.com> wrote: > >> Hello, >> >> You don't use the Jackson api correctly. You should use one of the >> writeValue methods to extract the json. >> Best regards >> Pontus Ullgren >> >> Send from my phone >> Den 1 sep 2012 00:02 skrev "Marco Mistroni" <mmistr...@gmail.com>: >> >> > HI all >> > i have a Jetty-Json route in my camel-app >> > >> > i submit JSON via python client, and i should return JSON back. >> > >> > i am using this configuration: >> > >> > <camel:route id="Jetty_Sample"> >> > <camel:from uri="jetty:http://localhost:8888/myJettyService" >> > /> >> > <!-- camel:log logName="HTTP LOG" loggingLevel="INFO" >> > message="HTTP REQUEST: >> > ${in.header.bookid}" / --> >> > <camel:process ref="myJettyService" /> >> > <camel:marshal ref="jsonFormatter" /> >> > </camel:route> >> > >> > <bean id="jsonFormatter" >> > class="org.apache.camel.model.dataformat.JsonDataFormat"> >> > <property name="library" value="Jackson" /> >> > </bean> >> > >> > >> > THe problem i have is the bean 'myJettyService' is returning a 'complex' >> > POJO which is not being marshalled correcly (here's output of my python >> > json client) >> > org.codehaus.jackson.map.ObjectMapper@11167f3 >> > >> > instead of a json string >> > >> > here's my java code in the processor >> > >> > ObjectMapper mapper = new ObjectMapper(); >> > ObjectNode node = mapper.createObjectNode(); >> > >> > node.put("ticker" , item.getShare().getTicker()); >> > node.put("name", item.getShare().getName()); >> > node.put("price", item.getShare().getPrice()); >> > node.put("latest", item.getLatestPrice().getLatestPrice()); >> > >> > >> > >> > if(ptfData != null) { >> > exchange.getOut().setBody(mapper.toString()); >> > >> > Clearly , i am missing something because my ObjectMapper just get >> > marshalled into this >> > org.codehaus.jackson.map.ObjectMapper@11167f3 >> > >> > instead of >> > >> > {'ticker': 'myticker', 'name': 'shareName' .... } >> > >> > could anyone tell me what am i missing? >> > >> > w/kindest regards >> > marco >> > >>