Comment extraire ObjectMapper de JAX-RS Client?
Je suis en utilisant Maillot de JAX-RS client (version 2.0). Je sais que c'est à l'aide d'un Jackson ObjectMapper de générer et analyser JSON. Je veux utiliser le même objet pour générer du JSON pour certaines classes java, de sorte que je peux les écrire dans un journal.
Je sais que je peux créer une nouvelle instance de ObjectMapper mais je préfère demander Jersey Client de me donner une référence à l'un, c'est à l'aide. Comment puis-je faire cela? Maillot 2.0 est conscient de Jackson parce qu'il inclut un JacksonFeature classe qui est utilisée pour configurer le Jackson fonction en premier lieu.
source d'informationauteur necromancer
Vous devez vous connecter pour publier un commentaire.
J'ai résolu ce problème en ajoutant des membres statiques:
Noter que la deuxième déclaration n'est pas nécessaire de configurer
FAIL_ON_UNKNOWN_PROPERTIES
ouFAIL_ON_EMPTY_BEANS
; je l'utiliseobject_mapper
pour d'autres raisons.Jersey ne fait pas explicitement configurer un ObjectMapper exemple, plutôt il délègue à
JacksonJsonProvider
qui à son tour utilise une valeur par défaut mappeur instance. Vous pouvez tracer le JacksonProviderProxy code pour voir comment il fonctionne. Vous pouvez créer et personnaliser un partagées mapper pour être utilisé tout au long de votre application en définissant une contexte de résolution:La Jackson fournisseur de récupérer son mappeur instance de cette résolution, et vous pourriez faire la même chose dans votre code, comme suit:
N'a pas été en mesure d'obtenir le jersey objet mappeur pour le configurer, sur la base des autres solutions (à l'aide de jackson 2.8.3). (Je pense qu'elle peut être liée à conteneur osgi, mais néanmoins...) Une force brute moyen de contourner cela est d'obtenir l'objet de Réponse de la part du Client et d'appeler votre propre instance de ObjectMapper sur elle. Alors que la même instance peut être réutilisé avec votre configuration explicite d'ailleurs.