2013-07-07 13 views
19

zainstalowałem Jetty 7 i skonfigurowane correcty dla IdP Shibboleth następującym niniejszym przewodniku: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7PrepareNoClassDefFoundError: org/W3C/dom/ElementTraversal

Ale gdy próbuję uruchomić Jetty I ten błąd:

NoClassDefFoundError: org/w3c/dom/ElementTraversal 

Aby rozwiązać ten problem, należy zainstalować zależność ElementTraversal i dołączyć ją do mojej ścieżki classpath.
Ale jak mogę to zrobić? Czy muszę pobrać ten plik klasy [ElementTraversal.class] lub .jar? i gdzie mogę go umieścić? w numerze JETTY_HOME? Czy muszę wyeksportować numer CLASSPATH?

Czy ktoś może mi pomóc?
Dziękuję bardzo!

Odpowiedz

19

Wygląda na to, że ElementTraversal jest częścią xml-apis-2.10.0.jar, która powinna być dostarczona wraz z instalacją Shibboleth.

Więc jeśli były następujące these instructions należy również podążały ten krok:

Endorse Xerces and Xalan by creating the directory JETTY_HOME/lib/endorsed/ and copy the .jar files included in the IdP source endorsed/ directory into the newly created directory.

Dopóki skopiowane wszystkie pliki jar odpowiednio, powinno być w porządku. Domyślam się, że pominąłeś ten krok - lub może tylko skopiował pliki JAR z Xalanem lub Xerces w nazwie, i ominął pozostałe dwa.

+0

Dziękuję bardzo, ale też podążałem za tym krokiem. Skopiowałem poprawnie 'xalan-2.7.1.jar' i' xercesImpl-2.10.0.jar' do JETTY_HOME/lib/endorsed/i dodałem następujący wiersz w pliku start.ini: '-Djava.endorsed.dirs = lib/poparłem "Podążyłem za wszystkimi krokami. –

+0

Mam 'xml-apis-2.10.0.jar' w' opt/shibboleth-idp/lib/endorsed/xml-apis-2.10.0.jar' .. Myślę, że problem może być w ścieżce zdefiniowanej w pliku start.ini. Mogę spróbować użyć bezwzględnej ścieżki '-Djava.endorsed.dirs =/home/user/webapps/jetty/lib/endorsed' –

+0

Nie działa również z pełną ścieżką. Dziękuję Jon Skeet, to dało mi wielką przyjemność i zaszczyt, że otrzymałem odpowiedź od Ciebie na moje pytanie. –

17

W moim przypadku problem został rozwiązany poprzez zmianę wersji xml-apis z 1.3.04 na 1.4.01.

BTW, wersja 2.10.0 nie istnieje w Maven Central (jestem ciekawy, gdzie znalazł ją Jon Skeet).

+2

A uzupełnienie tej przydatnej odpowiedzi z 2016 r., w maven jest też wersja 2.0.0 i 2.0.2 xml-apis, ale nie są one nowymi słoikami, są po prostu pom, mówiąc relokację do 1.0.b2.Nie wiem, który zespół za tym stoi, ale jeśli nie chcą otwierać swojego kodu, nie muszą go umieszczać w spisie, jest to zrozumiałe. Ale umieścili to tam i przenieśli go do niższej wersji, co jest marnowaniem czasu wielu programistów (widzę ponad 100 zastosowań wersji 2.0), a to nie jest dopuszczalne. – Tiina

+1

@ Tiina, to jest dla mnie przypadek ... szkoda, że ​​nie mogłem znaleźć tego komentarza. Czy jednak możesz to zrobić i powiedzieć, jak uzyskać prawidłowe wersje przy użyciu programu maven? – ConquerorsHaki

+0

@ConquerorsHaki Zwykle znajduję poprawną wersję przy użyciu stackoverflow. I spróbuj użyć wersji, która ma zarówno wyższą wersję, jak i dopuszczalną liczbę zastosowań. Podczas gdy używam xml-apis 2.0, ale nie mam problemu z rozwiązaniem, zajrzałem do jego pom i znalazłem to "przeniesienie do niższego" oops. Zazwyczaj ludzie pomyśleli o problemie z Internetem po raz pierwszy, gdy nie zauważyli różnicy po aktualizacji swojej pom. To był mój pierwszy problem. – Tiina

Powiązane problemy