332 votes

Il n'existe pas de créateurs, comme la construction par défaut) : on ne peut pas désérialiser à partir de la valeur d'un objet (il n'existe pas de créateur basé sur un délégué ou une propriété).

J'essaie de consommer une API en utilisant Retrofit et Jackson pour désérialiser. J'obtiens l'erreur onFailure No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator .

2 votes

Il semble que vous n'utilisiez pas le module Jackson pour Kotlin, qui fonctionne avec les classes de données qui n'ont pas de constructeur par défaut, ce qui n'est pas le cas de la vôtre. Vérifiez ce module et voyez si vous avez des problèmes par la suite.

0 votes

Veuillez modifier la réponse acceptée.

0voto

Kms Points 287

J'ai rencontré la même erreur dans le Usecase ci-dessous.

J'ai essayé d'atteindre le point final de Rest(Put mapping) en utilisant le démarrage de sprint( 2.0.0 Version de l'instantané ) sans avoir par défaut dans le bean respectif.

Mais avec les dernières versions de Spring Boot( 2.4.1 Version ) le même morceau de code fonctionne sans erreur.

donc le constructeur par défaut du haricot est plus du tout nécessaire dans la dernière version de Spring Boot

0voto

Harsh Gundecha Points 342

J'ai eu la même erreur et le problème était que ma modèle n'a pas mis en œuvre Serializable donc vérifiez cela aussi, cela pourrait aider puisque c'est aussi une des raisons .

0voto

SKO Points 26

J'ai également rencontré l'exception en Kotlin. Si vous avez toujours des problèmes après avoir appliqué KotlinModule, il se peut (mais pas tout à fait probablement) que vous ayez une classe de valeur quelque part.

0voto

Alexey Bril Points 323

J'ajoute ma réponse, car j'ai moi-même, par inattention, rencontré cette erreur.

J'ai accidentellement introduit le mauvais sérialiseur par le biais de l'importation d'un objet statique et, pendant longtemps, je n'ai pas pu comprendre ce qui en était la raison. Peut-être cela aidera-t-il quelqu'un d'autre.

// Wrong serializer via static object import
import static org.keycloak.util.JsonSerialization.mapper;

Faites attention.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X