Plusieurs instances JAXBContext
En utilisant XJC, j'ai créer 2 différents JAXB métadonnées paquets avec un ObjectFactory classe dans chaque paquet (je ne sais pas si cette approche est OK, j'ai 2 différents XSD pour travailler sur )
Il est recommandé de ne créer qu'un seul JAXBContext par opération, parce que c'est costy. Donc je me demande si ce que je fais ici est valide et de bonne pratique?
JAXBContext jaxbContext = JAXBContext.newInstance("com.package.one");
Unmarshaller jaxbUnmarshaller1 = jaxbContext.createUnmarshaller();
JAXBContext jaxbContext2 = JAXBContext.newInstance("com.package.two");
Unmarshaller jaxbUnmarshaller2 = jaxbContext2.createUnmarshaller();
MODIFIER lorsque j'essaie d'initialiser 2 paquets ensemble, j'obtiens une exception "Le nom de l'élément {}Valeur a plus d'une cartographie". La valeur est une classe dans les deux packages.
JAXBContext jaxbContext = JAXBContext.newInstance("com.package.one:com.package.two");
OriginalL'auteur Spring | 2012-11-15
Vous devez vous connecter pour publier un commentaire.
De la Javadoc de JAXBContext:
Vous pouvez utiliser un contexte partagé et de l'initialiser avec une liste de noms de package.
Exemple De Code:
et celui-ci:
Enfin:
JAXB utilise FQN (noms entièrement qualifiés) pendant le traitement, donc non, ce n'est pas un problème si les classes ont le même (simple) nom.
J'aime arrêt aléatoire électeurs.
lorsque j'essaie d'initialiser 2 paquets ensemble, j'obtiens une exception "Le nom de l'élément {}Valeur a plus d'une cartographie". Mais ils travaillent bien separemment. La valeur est une classe dans les deux packages. Donc, ce est le problème?
L'OP déjà se rend compte que la création de plusieurs JAXB contexte des objets est la mauvaise approche, ma réponse lui dit comment pour utiliser un contexte et d'atteindre le même objectif. L'intention est claire.
OriginalL'auteur Perception