2
respostas

Erro No serializer found

Quando eu tendo acessar meu JSON estou tendo o seguinte erro:

There was an unexpected error (type=Internal Server Error, status=500). Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

Dei uma pesquisada e achei uma solução para colocar no meu applicantion.properties:

spring.jackson.serialization.fail-on-empty-beans=false

Isso resolveu, mas queria saber porque esse erro acontece e se essa é a melhor solução para resolver. Outra coisa, não muito importante, também queria saber como deixo meu dados JSON organizado e porque aparece o usuário e a senha?

2 respostas

O erro foi por causa que você tentou serializar alguma coisa nula. Isso que você acrescentou é para não serializar objeto nulo. Por exemplo, se dentro de um objeto A tiver um objeto B, e este B estiver nulo, ele (objeto B) não vai ser serializado. Sobre isso ser a melhor solução, depende da regra de negócio, por exemplo: você gostaria de apresentar ao cliente uma validação do tipo "este campo deve ser preenchido"? Se sim, convém deixar como true o que você botou aí como false.

Para deixar os dados JSON organizados, você pode utilizar algum add-on do seu navegador, ou utilizar o Postman. O usuário e senha aparecem porque você não botou em cima do getPassword uma anotação assim: "@JsonIgnore". Essa anotação é pra ignorar a serialização desse atributo. Mas é importante saber que existem outras anotações, como, por exemplo, a que considera que esse atributo será somente permitido na hora de inserir um objeto por JSON.

Baixe o Plugin "Json Formatter" para o seu navegador. Resolveu o problema da apresentação bagunçada dos dados.