В Tomcat, java.lang.LinkageError: API JAXB 2.1 загружается из загрузчика классов начальной загрузки - PullRequest
2 голосов
/ 11 ноября 2010

Я пытаюсь загрузить свое веб-приложение в Tomcat. Кажется, он жалуется, что у него более старая версия JAR, чем у моего приложения. Должен ли я удалить этот старый JAR, использовать более новую версию Java, отредактировать загрузчик классов начальной загрузки (как?) Или как?

Сообщение: API JAXB 2.1 загружается из загрузчика классов начальной загрузки, но этот 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. Используйте одобренный механизм каталогов, чтобы поместить jaxb-api.jar в загрузчик классов начальной загрузки. (См. http://java.sun.com/j2se/1.6.0/docs/guide/standards/)

Причина: выполнение действия [getDocx] контроллера [FormattedDocumentController] вызвало исключение: java.lang.LinkageError: API-интерфейс JAXB 2.1 загружается из загрузчика классов начальной загрузки, но этот 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) требует API 2.2. Используйте одобренный механизм каталогов, чтобы поместить jaxb-api.jar в загрузчик классов начальной загрузки. (См. http://java.sun.com/j2se/1.6.0/docs/guide/standards/)

Ответы [ 3 ]

2 голосов
/ 12 января 2012

Я не знаю точно, почему, но я решил это следующим образом.

Я понял, что Tomcat использует JVM (jre1.6.0_03) , который не является значением по умолчанию (jre1.6.0_26, в папке C: \ Program Files). \ Java \ jre6 ).

Поэтому я остановил Tomcat, запустил программу «Настройка Tomcat», на вкладке «Java» выбрал «Использовать по умолчанию», а затем снова запустил Tomcat.

2 голосов
/ 11 ноября 2010

Положите JAXB 2.2 JAR в

%JAVA_HOME%\lib\endorsed

Это должно работать.

Если ваша Java установлена ​​в

C:\Program Files\Java

тогда вы должны поместить JAXB 2.2 JAR в:

C:\Program Files\Java\lib\endorsed

каталог.

0 голосов
/ 14 января 2013

Поместите JAR-файлы JAXB 2.2 в папку, сначала вам нужно выяснить, где эта папка использует:

System.out.println (System.getProperty ( "java.endorsed.dirs"));

Мой был d: \ Tomcat 7.0 \ одобрен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...