Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Erro na Deserialização Customizada 4.5

Estou com um erro ao tentar customizar a deserialização para o LogService.

Estou enviando somente um registro peo NewOrderMain para tentar facilitar as coisas.

Ao manter o deserializador do value como StringDeserializer tudo funciona perfeitamente no LogService e no EmailService, uma vez que ambos esperam strings.

Screenshot - LogService funciona usando StringDeserializer no KafkaService

O problema é que ao tentar usar o deserializador da classe GsonDeserializer o LogService apresenta um erro enquanto o FraudDetectorService e o EmailService funcionam perfeitamente.

Screenshot - LogService não deserializa o Order

Como podem ver, ele consegue deserializar o email, mas ao tentar deserializar o order que foi passado ele produz esse erro e termina com código 1.

O meu método deserialize é este, por isso é possível ver o print com o objeto e seu tipo. O erro em GsonDeserializer.java:34 é a linha de retorno.

@Override
    public T deserialize(String s, byte[] bytes) {
        var object = new String(bytes);
        System.out.println("Type of " + object + " is " + object.getClass().getName());

        return gson.fromJson(object, type);
    }

Isso simplesmente não faz sentido. Como ele consegue deserializar se eu passar o StringDeserializer direto, mas dessa forma indireta ele não consegue? Alguém mais teve esse problema?

kafka-clients==3.3.1
slf4j-simple==1.7.29
gson==2.10
2 respostas
solução!

Consegui resolver o problema. Aparentemente um conflito de dependências.

Olá João!

Que bom que conseguiu resolver.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software