Apache Kafka: …StringDeserializer is not an instance of …Deserializer

前端 未结 3 1301

In my simple application i am trying to instantiate a KafkaConsumer my code is nearly a copy of the code from javadoc (\"Automatic Offset Committing\"):

@Slf4j
p         


        
3条回答
  •  耶瑟儿~
    2021-01-23 05:56

    Your Custom class need to implement, org.apache.kafka.common.serialization.Deserializer.

    like

    import org.apache.kafka.common.header.Headers;
    import org.apache.kafka.common.serialization.Serializer;
    import org.apache.kafka.common.serialization.Deserializer;
    import org.codehaus.jackson.map.ObjectMapper;
    
    import java.io.Serializable;
    import java.util.Map;
    
    //Developed by Arun Singh
    public class Employee implements Serializable, Serializer, **Deserializer** {
    
    @Override
        public Object deserialize(String s, byte[] bytes) {
            ObjectMapper mapper = new ObjectMapper();
            Employee employee = null;
            try {
                //employee = mapper.readValue(bytes, Employee.class);
                employee = mapper.readValue(bytes.toString(), Employee.class);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return employee;
        }
    
        @Override
        public Object deserialize(String topic, Headers headers, byte[] data) {
            ObjectMapper mapper = new ObjectMapper();
            Employee employee = null;
            try {
                //employee = mapper.readValue(bytes, Employee.class);
                employee = mapper.readValue(data.toString(), Employee.class);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return employee;
        }
    
        public void close() {
    
        }
    }
    

提交回复
热议问题