Tomcat 6 使用 JDK 1.6 和 jaxb2.17 问题

来源:百度文库 编辑:神马文学网 时间:2024/04/27 23:18:30
http://www.blogjava.net/pojo/archive/2009/03/14/259715.html CXF 新版会用到jaxb2.17 但 Tomcat 6 JDK 会load jaxb2.0
解决办法:

找到tomcat 的默认 endorsed 目录
the default endorsed directory is: $CATALINA_HOME/endorsed.
如果没有这个目录 建这个目录讲jaxb的3个Jar包Copy来 OK
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI
(from jar:file:/somedirectory/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/)

It's actually a very simple fix, but painful enough to warrant a post. Put the jaxb-api.jar that you're trying to use into JDK_HOME/jre/lib/endorsed. If the endorsed directory doesn't exist, make it. This is apparently only a problem with JDK 1.6, not with JDK 1.5.