JAXB de Cartographie en JSON
J'ai écrit un JAX-RS (Jersey) Service REST, XML qui accepte les messages de ONIX format XML. En général, j'ai généré à toutes les classes nécessaires pour JAXB liaison du schéma donné avec xjc. Il y a plus de 500 classes ensemble et je ne peut pas les modifier.
Maintenant, quand j'ai un JAXB-objet cartographié, j'ai besoin de les stocker dans la base de données. Je travaille avec mongoDb, de sorte que le message le format JSON. J'ai essayé d'utiliser Jackson avec JAXB module pour convertir JAXB-objet en JSON, qui fonctionne très bien avec le stockage de données. Mais quand j'essaie de convertir au format JSON à l'arrière dans le JAXB objet, il déclenche une exception reliés d'une certaine manière avec la JAXBElement. Dans google, j'ai trouvé que le JAXBElement n'est pas pris en charge dans Jackson et je dois contourner ce problème. Mais je ne peux pas le faire parce que je ne peux pas modifier JAXB-classes générées.
Est-il un moyen de la carte JAXB Objets en JSON avec d'autres moyens, mais qui va suivre l'ensemble de JAXB cahier des charges afin que je n'ai pas de problèmes à l'avenir de la conversion de JSON à la JAXB objet et visa vera?
Vous pourriez tout aussi bien utiliser des droites JAXB. Il y a un bon article à ce sujet ici: Liaison JSON & XML – gestion des Collections
J'ai ajouté une réponse à l'extension de votre commentaire: stackoverflow.com/a/19168878/383861
merci pour la référence. J'ai assez bien de rechercher tout ce que vous avez écrit lorsque vous traitez avec MOXy ou JAXB.
Jetez un oeil à cette question si vous avez trouvé vous-même ici, dans cette vieille question.
OriginalL'auteur Artem Moskalev | 2013-10-03
Vous devez vous connecter pour publier un commentaire.
Remarque: je suis le EclipseLink JAXB (MOXy) plomb et un membre de la JAXB (JSR-222) groupe d'experts.
Si vous ne pouvez pas le faire avec Jackson, vous utilisez le cas sera de travailler avec MOXy.
Java Modèle
Foo
Voici un exemple d'une classe qui contient un champ de type
JAXBElement
.Bar
ObjectFactory
Autonome Le Code De Démonstration
Ci-dessous quelques démo de code que vous pouvez exécuter dans Java SE pour voir que tout fonctionne:
Démo
d'entrée.json/Sortie
En cours d'exécution avec JAX-RS
Les liens suivants vous aideront à tirer parti de MOXy dans un JAX-RS service:
sont-elles non-eclipselink (c'est à dire la norme) propriétés de configuration de l'JAXBContext dans JavaEE 7?
OriginalL'auteur Blaise Doughan
Puisque vous êtes à l'aide de Jackson, vous pouvez construire un
ObjectMapper
avec leJaxbAnnotationModule
et écrire la valeur. Voici un peu de code à écrire un JAXB annoté objet du système.Cette approche permettra également de travailler sur Glassfish car il n'utilise pas le fournisseur donné par le conteneur qui serait la cause de ClassNotFoundException comme par GLASSFISH-21141
OriginalL'auteur Archimedes Trajano