lunes, 30 de junio de 2008

java.lang.LinkageError: JAXB 2.0 API is being loaded but needs 2.1 API

El texto completo del error es:

Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/home/jmgomez/Documents/Projects/intime/build/web/WEB-INF/lib/
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/)


Un error que a mí me ha aparecido en multitud de ocasiones, sobretodo cuando he tenido que migrar de versión del NetBeans o del Tomcat. La solución es copiar el api del JawxWS 2.1 que incorpora el Netbeans a un directorio endorsed/ ubicado en el apache. Si este directorio no existe se debe crear. Un ejemplo:

cp /usr/local/netbeans-6.0.1/java1/modules/ext/jaxws21/api/* /usr/local/netbeans-6.0.1/apache-tomcat-6.0.16/endorsed/

Si utilizas java en vez de un servidor de aplicaciones, debes incluir esas librerías en:

$JRE_HOME/lib/endorsed

(Puede que sólo sea necesario el jaxb-api.jar)

No hay comentarios: