Saturday, January 1, 2011

Using Camel with Jackson JSON Serialization

I previously used Camel-XMPP with Xstream/Jettison JSON Provider to serialize BeanInvocation messages.

It's also possible to use Jackson JSON Provider, with the right configuration.

Add the camel-jackson dependency :

dependencies {
    compile 'org.slf4j:slf4j-api:1.6.1'
    runtime 'org.slf4j:jcl-over-slf4j:1.6.1'
    runtime 'ch.qos.logback:logback-classic:0.9.26'
    compile 'org.apache.camel:camel-core:2.5.0'
    runtime 'org.apache.camel:camel-xmpp:2.5.0'
    runtime 'org.apache.camel:camel-jackson:2.5.0'

Configure Camel and Jackson as follows :

camelContext.addRoutes(new RouteBuilder() {
    public void configure() throws Exception {
        JacksonDataFormat jacksonDataFormat = new JacksonDataFormat();
            SerializationConfig.Feature.INDENT_OUTPUT, true);



The important thing here is defining the Jackson Data Format then enabling default typing for non-final classes.

Now serializing BeanInvocation over Camel XMPP or any transport mechanism (with Jackson) should just work. :-)

Copyright 2009 Spring vs Java EE Web Dev. Powered by Blogger Blogger Templates create by Deluxe Templates. WP by Masterplan