I am trying to build a POC with Kafka 0.8.1. I am using my own java class as a Kafka message which has a bunch of String data types. For serializer.class property in my producer, I cannot use the default serializer class or the String serializer class that comes with Kafka library. I guess I need to write my own serializer and feed it to the producer properties. If you are aware of writing an example custom serializer in Kafka (in java), please do share. Appreciate a lot, thanks much.
I tried to use something like below, but I get the exception: Exception in thread "main" java.lang.NoSuchMethodException: test.EventsDataSerializer.<init>(kafka.utils.VerifiableProperties) at java.lang.Class.getConstructor0(Class.java:2971) package test; import java.io.IOException; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.databind.ObjectMapper; import kafka.message.Message; import kafka.serializer.Decoder; import kafka.serializer.Encoder; public class EventsDataSerializer implements Encoder<SimulateEvent>, Decoder<SimulateEvent> { public Message toMessage(SimulateEvent eventDetails) { try { ObjectMapper mapper = new ObjectMapper(new JsonFactory()); byte[] serialized = mapper.writeValueAsBytes(eventDetails); return new Message(serialized); } catch (IOException e) { e.printStackTrace(); return null; // TODO } } public SimulateEvent toEvent(Message message) { SimulateEvent event = new SimulateEvent(); ObjectMapper mapper = new ObjectMapper(new JsonFactory()); try { //TODO handle error return mapper.readValue(message.payload().array(), SimulateEvent.class); } catch (IOException e) { e.printStackTrace(); return null; } } public byte[] toBytes(SimulateEvent arg0) { // TODO Auto-generated method stub return null; } public SimulateEvent fromBytes(byte[] arg0) { // TODO Auto-generated method stub return null; } }