web-dev-qa-db-fra.com

Comment utiliser un fichier jaxb.index?

Je suis en train

javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index

tout en essayant de créer un JAXBContext en utilisant JAXBContext.newInstance(String contextPath). Je suppose qu'il existe un moyen "habituel" de créer et de gérer un fichier jaxb.index.

26
loosenut

Le fichier jaxb.index est juste une liste des classes du package contenant des annotations JAXB.

Chaque ligne du fichier est le nom simple d'une classe, pas son nom complet.

Vous pouvez en savoir plus ici: http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html

36
Rafael M

Essayez de cette façon,

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});

Assurez-vous également que vous avez ajouté le @XmlRootElement à la classe Test.

@XmlRootElement
class Test {
  private String ...;
  private int ......;
}

assurez-vous également que vous utilisez Java 1.5

15
Hari

Assurez-vous de transmettre la bonne classe à la méthode. En supposant que votre élément racine XML est XMLRoot, vous l'appelleriez comme:

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);

Assurez-vous également que vous utilisez la bonne version du compilateur JAXB (xjc) pour la version de Java que vous exécutez. Les classes générées par JAXB de l'ancien compilateur ne fonctionneront pas correctement avec Java 6 JAXB, donnant la même erreur.

4
Andrew Coleson