我正在尝试将我的webapp加载到Tomcat中。它似乎抱怨它有一个比我的应用程序更旧的JAR版本。我应该删除旧的JAR,使用更新版本的Java,编辑bootstrap类加载器(如何?)或者是什么?
消息:正在从引导类加载器加载JAXB 2.1 API,但是这个RI(来自jar:file:/ C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/webapps/SkillsDB/WEB-INF /lib/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class)需要2.2 API。使用endorsed目录机制将jaxb-api.jar放在bootstrap类加载器中。 (见http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
引起:执行控制器[FormattedDocumentController]的动作[getDocx]导致异常:
java.lang.LinkageError
:正在从引导类加载器加载JAXB 2.1 API,但是这个RI(来自jar:file:/ C:/ Program) %20Files / Apache%20Software%20Foundation / Tomcat%205.5 / webapps / SkillsDB / WEB-INF / lib / jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class)需要2.2 API。使用endorsed目录机制将jaxb-api.jar放在bootstrap类加载器中。 (见http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
答案 0 :(得分:2)
将您的JAXB 2.2 JAR放入
%JAVA_HOME%\lib\endorsed
它应该有用。
如果您的Java安装在
中C:\Program Files\Java
然后您应该将JAXB 2.2 JAR放入:
C:\Program Files\Java\lib\endorsed
。目录
答案 1 :(得分:2)
我不确切知道为什么,但我按照以下方式解决了这个问题。
我意识到Tomcat使用的是 JVM (jre1.6.0_03),这不是默认的(jre1.6.0_26,在文件夹 C:\ Program Files \ Java \ jre6 )。
所以我停止了Tomcat,启动了“配置Tomcat”程序,在“Java”选项卡中选择了“Use default”,然后再次启动Tomcat。
答案 2 :(得分:0)
将您的JAXB 2.2 JAR放入文件夹中,首先需要找到此文件夹的使用位置:
的System.out.println(System.getProperty( “java.endorsed.dirs”));
我是d:\ Tomcat 7.0 \ endorsed