Article complet: JAXB 2.1 avec Java 6

JAXB 2.1 avec Java 6

Octobre 3rd, 2007

Le choix d'inclure (précipitamment ?) JAXB au jdk 1.6 a des conséquences fâcheuses. En effet, la version de l'API intégrée au jdk est la 2.0, et très souvent il est indispensable de passer à la 2.1 pour bénéficier de fonctionnalités comme par exemple l'annotation XmlSeeAlso.
Pas de problème me diriez-vous, il suffit de rajouter -Djava.endorsed.dirs=jaxb-api.jar à la ligne de commande de java pour "patcher" le jdk.
Malheureusement, si votre application est distribuée au travers de Java Web Start, le mécanisme de classes "endorsed" ne fonctionne pas.
Pour s'en sortir une seule solution faire des acrobaties avec les ClassLoaders. Ce billet explique cela en détail. Dans le cadre d'une application swing, il faudra bien penser à appeler la méthode setContextClassLoader également sur le thread gérant les événements système comme ceci :

EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();
eq.invokeAndWait(new Runnable() {
public void run() {
Thread.currentThread().setContextClassLoader(modifiedClassLoader);
}
});

C'est du sport mais ça marche !

Technorati tags:
Flickr tags: Java Web StartJAXBJDK 1.6
del.icio.us tags: Java Web StartJAXBJDK 1.6

Commentaires, Pingbacks:

Cet article n'a pas de Commentaires/Pingbacks pour le moment...

Laisser un commentaire:

Votre adresse email ne sera pas affichée sur ce site.
Votre URL sera affichée.
Balises XHTML autorisées: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
Options:
 
(Les retours à la ligne deviennent des <br />)
(Placer des cookies pour le nom, l'email & l'url)

authimage
Note:si votre commentaire est rejeté, vous devez rafraichir la page avant de la soumettre à nouveau !