Bonsoir,
J'essaye de tester JAXB pour voir s'il pourrait répondre à mes problématiques de manipulations de XML.
J'ai pu faire la première étape sans encombre, à savoir générer les classes Java à partir d'un XSD.
xjc -d C:\Users\MyUser\Desktop\TestJAXB -p ch.test.xml C:\Users\MyUser\Desktop\TestJAXB\2\test.xsd
Cette commande me crée 2 fichiers : mon objet principal (Shiporder.java) et une classe ObjectFactory.java
Une fois que j'ai fais cela, je souhaiterais pouvoir utiliser ces classes dans mon IDE (Talend).
Donc j'essaie d'en faire un jar, que je peux importer ensuite dans Talend.
Je crée donc un fichier Manifest qui ressemble à ça :
1 2
| Manifest-Version: 1.0
Main-Class: ch.test.xml.ObjectFactory |
--> déjà à ce point, je ne sais pas si je dois mettre ObjectFactory ou Shiporder comme classe principale - aucune des 2 n'a de fonction main()
Donc je crée mon jar :
jar cmf MANIFEST.MF Shiporder-0.1.3.jar ch/test/xml/ObjectFactory.java ch/test/xml/Shiporder.java
Une fois mon jar créé, je l'ajoute dans mes dépendances côté Talend, et j'importe le package
Mon import fonctionne bien, mais impossible d'utiliser mes classes par la suite :
JAXBContext jc = JAXBContext.newInstance( "ch.test.xml" ); // --> me retourne l'erreur "ch.test.xml" ne contient pas ObjectFactory.class ou jaxb.index
1 2 3
| JAXBContext jc = JAXBContext.newInstance();
Unmarshaller u = jc.createUnmarshaller();
Shiporder o = new Shiporder(); // --> ne compile pas, il ne reconnait pas ma classe |
Est-ce que quelqu'un à une idée de mon erreur ?
Est-ce normal de ne pas avoir de classe main() dans aucune de mes 2 classes java ?
Comment puis valider mon jar pour vérifier que tout aille bien ?
Merci et très bonne soirée
Partager