2013-07-07 8 views
19

Ich installierte Jetty 7 und konfiguriert es correcty für IdP Shibboleth nach dieser Anleitung: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7PrepareNoClassDefFoundError: org/w3c/dom/ElementTraversal

Aber wenn ich versuche, Jetty zu starten bekomme ich diesen Fehler:

NoClassDefFoundError: org/w3c/dom/ElementTraversal 

Um dieses Problem zu beheben, muss ich die ElementTraversal Abhängigkeit installieren und es in meinem Klassenpfad einschließen.
Aber wie kann ich das erreichen? Muss ich diese Klasse [ElementTraversal.class] oder eine .jar Datei herunterladen? und wo kann ich es platzieren? in der JETTY_HOME? Muss ich die CLASSPATH exportieren?

Kann mir jemand helfen?
Vielen Dank!

Antwort

19

Es scheint, als wäre ElementTraversal Teil von xml-apis-2.10.0.jar, das mit Ihrer Shibboleth-Installation bereitgestellt werden sollte.

Also, wenn Sie folgende wurden these instructions Sie auch haben sollten diesen Schritt folgt:

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.

So lange, wie Sie in geeigneter Weise alle JAR-Dateien kopiert, sollte es okay sein. Meine Vermutung ist, dass Sie diesen Schritt verpasst haben - oder vielleicht nur kopiert die Jar-Dateien mit Xalan oder Xerces im Namen und verpasste die anderen beiden.

+0

Vielen Dank, aber ich habe diesen Schritt auch gefolgt. Ich habe 'xalan-2.7.1.jar' und' xercesImpl-2.10.0.jar' korrekt in JETTY_HOME/lib/indossiert/kopiert und die folgende Zeile in start.ini hinzugefügt: '-Djava.endorsed.dirs = lib Ich habe alle Schritte befolgt. –

+0

Ich habe die 'xml-apis-2.10.0.jar' in' opt/shibboleth-idp/lib/indossiert/xml-apis-2.10.0.jar' .. Ich denke, dass das Problem in dem Pfad definiert sein könnte in start.ini. Ich kann versuchen, einen absoluten Pfad zu verwenden '-Djava.endorsed.dirs// home/user/webapps/jetty/lib/indowended' –

+0

Funktioniert nicht auch mit dem absoluten Pfad. Danke Jon Skeet, es hat mir große Freude und Ehre bereitet, eine Antwort von Ihnen auf meine Frage erhalten zu haben. –

17

In meinem Fall wurde das Problem behoben, indem die xml-apis-Version von 1.3.04 auf 1.4.01 geändert wurde.

BTW, Version 2.10.0 existiert nicht in Maven Central (Ich bin gespannt, wo Jon Skeet es gefunden hat).

+2

A Ergänzung dieser nützlichen Antwort von 2016 Dec, in Maven gibt es auch eine 2.0.0 und 2.0.2 Version von Xml-Apis, aber sie sind nicht neu jar, sie sind nur ein Pom, sagen Umzug nach 1.0.b2.Ich weiß nicht, welches Team dahinter steht, aber wenn sie ihren Code nicht öffnen wollen, müssen sie ihn nicht in Maven schreiben, das ist verständlich. Aber sie legen es dort hin und verlagern es auf eine niedrigere Version, was eine Verschwendung von vielen Entwicklern ist (ich sehe über 100 Verwendungen der Version 2.0), und das ist nicht akzeptabel. – Tiina

+1

@Tiina das ist genau mein Fall ... eine Schande, dass ich diesen Kommentar nicht finden konnte. Können Sie dies jedoch vervollständigen und uns sagen, wie Sie die richtigen Versionen mit Maven erhalten? – ConquerorsHaki

+0

@ConquerorsHaki Ich finde normalerweise die richtige Version mit Stackoverflow. Und versuchen Sie, die Version zu verwenden, die sowohl eine höhere Version als auch eine akzeptable Anzahl von Verwendungen aufweist. Während ich xml-apis 2.0 verwende, aber das Problem nicht gelöst habe, habe ich in seinen Pom geschaut, und ich fand, dass "Umzug nach einem niedrigeren" oops. Normalerweise würden Leute zuerst über ihr Internet-Problem nachdenken, wenn sie keinen Unterschied sehen, nachdem sie ihren Pom aktualisiert haben. Das war auch meine erste Sorge. – Tiina