package org.mike; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.MediaType; import org.codehaus.jackson.jaxrs.JacksonJsonProvider; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig.Feature; import org.codehaus.jackson.xc.JaxbAnnotationIntrospector; import org.mike.jaxb.IMike; import org.mike.jaxb.Mike; import org.mike.jaxb.MyJAXBObject; public class Tester { public static void main(String args[]) { Tester tester = new Tester(); tester.runTest(); } public void runTest() { try { JacksonJsonProvider provider = getJacksonProvider(); MyJAXBObject myJAXBObject = new MyJAXBObject(); Mike mike1 = new Mike(); mike1.setId("mike1"); Mike mike2 = new Mike(); mike2.setId("mike2"); List mikes = new ArrayList(); mikes.add(mike1); mikes.add(mike2); myJAXBObject.setMikes(mikes); // Write it ByteArrayOutputStream bos = new ByteArrayOutputStream(); provider.writeTo(myJAXBObject, MyJAXBObject.class, MyJAXBObject.class, null, MediaType.APPLICATION_JSON_TYPE, null, bos); String result = bos.toString(); System.out.println(result); // Read it InputStream is = new ByteArrayInputStream(result.getBytes()); MyJAXBObject myJAXBObject2 = (MyJAXBObject)provider.readFrom(Object.class, MyJAXBObject.class, null, MediaType.APPLICATION_JSON_TYPE, null, is); } catch (IOException e) { e.printStackTrace(); } } private JacksonJsonProvider getJacksonProvider() { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); JaxbAnnotationIntrospector jaxbIntrospector = new JaxbAnnotationIntrospector(); mapper.getSerializationConfig().setAnnotationIntrospector(jaxbIntrospector); mapper.getSerializationConfig().set(Feature.WRITE_DATES_AS_TIMESTAMPS, true); mapper.getDeserializationConfig().setAnnotationIntrospector(jaxbIntrospector); JacksonJsonProvider jacksonProvider = new JacksonJsonProvider(); jacksonProvider.setMapper(mapper); return jacksonProvider; } }