Hello guys,
I'd like to ask you, I have a POJO classes, holding data representation of
various kinds of data entities.
Output of my Camel routes is JSON String returned to browser as response.
I thought it would be easy to marshall POJO to JSON formatted String with
Jackson, but I have something wrong there.

Consider this code:

public class PojoDemoRouteTest extends CamelTestSupport {

    @Before
    public void setup() throws Exception {
        super.setUp();
        context.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start")
                .marshal().json(JsonLibrary.Jackson)
                .to("mock:pojodemo");
            }
        });
    }

    @Test
    public void basicPojoTest() throws InterruptedException {
        MockEndpoint pojoMock = getMockEndpoint("mock:pojodemo");

        JsonMarshallDemo demoPojo = new JsonMarshallDemo();
        demoPojo.setBar("demo bar");
        demoPojo.setFoo("demo foo");

        template.sendBody("direct:start", demoPojo);

        pojoMock.expectedMessageCount(1);

        List<Exchange> receivedExchanges = pojoMock.getExchanges();
        for (Exchange receivedExchange : receivedExchanges) {
            System.out.println(String.format("Exchange getIn body: %s",
receivedExchange.getIn().getBody()));
            System.out.println(String.format("Exchange getOut body: %s",
receivedExchange.getOut().getBody()));
        }

        pojoMock.assertIsSatisfied();
    }
}

Why I don't see JSON String in the incomming message's body?
When I debug this route, I can see that there is the JSON String, but not
in the body, see:
https://www.dropbox.com/sh/llvbflokwiheuby/X65PdXfwnJ/esb_pojo_marshall_debug.png
Btw, it's String representation of the Message or what?

-- 
S pozdravem / Best regards
Martin Stiborský

Jabber: st...@njs.netlab.cz
Twitter: http://www.twitter.com/stibi

Reply via email to