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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
JAXBContext jc = JAXBContext.newInstance( "ch.test.xml" ); // --> me retourne l'erreur  "ch.test.xml" ne contient pas ObjectFactory.class ou jaxb.index
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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