NoClassDefFoundError: org/w3c/dom/ElementTraversal
Я установил Jetty 7 и настроил его для IdP Shibboleth в соответствии с этим руководством: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7Prepare
Но когда я пытаюсь запустить Jetty, я получаю эту ошибку:
NoClassDefFoundError: org/w3c/dom/ElementTraversal
Чтобы решить эту проблему, мне нужно установить зависимость ElementTraversal и включить ее в свой classpath.
Но как я могу это сделать? Нужно ли загружать этот класс [ElementTraversal.class] или файл .jar? и где я могу его разместить? в JETTY_HOME
? Мне нужно экспортировать CLASSPATH
?
Может кто-нибудь мне помочь?
Большое вам спасибо!
Ответы
Ответ 1
Похоже, что ElementTraversal является частью xml-apis-2.10.0.jar
, который должен был быть снабжен установкой Shibboleth.
Итак, если вы следовали этим инструкциям, вы также должны были следовать этому шагу:
Endorse Xerces и Xalan, создав каталог JETTY_HOME/lib/endorsed/и скопируйте файлы .jar, включенные в исходный каталог IdP source/directory во вновь созданный каталог.
Пока вы копируете все файлы jar соответствующим образом, все должно быть в порядке. Я предполагаю, что вы пропустили этот шаг - или, возможно, только скопировали файлы jar с Xalan или Xerces в имени и пропустили два других.
Ответ 2
В моем случае проблема была исправлена путем изменения версии xml-apis с 1.3.04 до 1.4.01.
Кстати, версия 2.10.0 не существует в Maven Central (мне любопытно, где его нашел Джон Скит).