Exception in thread "AWT-EventQueue-0" java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/opt/netbeans-6.1/java2/modules/ext/jaxws21/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
Nel mio caso l'eccezione viene generata con la seguente istruzione:
JAXBContext jaxbCtxMain = JAXBContext.newInstance( com.company.monitor.xml.Monitor.class.getPackage().getName());
La soluzione è quella di creare un cartella chiamata "endorsed" nella $JAVA_HOME.
In ubuntu :
#Creazione della cartella endorsed
sudo mkdir /usr/lib/jvm/java-6-sun/jre/lib/endorsed/
#Copia dei file jaxb-api.jar jaxws-api.jar in endorsed
cp $NETBEANS_HOME/java2/modules/ext/jaxws21/api/jax*api.jar
Poi bisogna modificare le librarie del progetto sotto netbeans:
1. Tasto dx sul progetto "Properties"
2. Andare sotto Libraries e Rimuovere(remove) "JAXB 2.1" e "JAX-WS 2.1"
Provare a ricompilare ed eseguire il progetto.
Info:
http://java.sun.com/j2se/1.5.0/docs/guide/standards/