2016-04-26 13 views
0

Dies ist idp.war Einsatz auf tomcat 7 (.69)Tomcat-Start Ausnahme: Fehler beim Schemadokument

Fehler beim Lesen Schema Dokument lesen 'Klassenpfad: /schema/shibboleth-2.0-services.xsd'

in der Spur schlägt es einige Dinge vor:

1) konnte das Dokument nicht finden.

2) das Dokument nicht gelesen werden kann.

3) das Wurzelelement des Dokuments ist nicht <xsd:schema>

Ich kann den Einsatz gehen in: IDP/WEB-INF/lib/Shibboleth-common-1.2.1.jar/schema/und sehen Sie alle shibboleth-2.0- .xsd Dateien, die die Datei Service.xml als schemaLocations deklariert

Dieser Ordner wurde von Tomcat-Bereitstellung für Tomcat erstellt, damit ich nicht weiß, warum es nicht gelesen werden kann, ich rate Berechtigungen Probleme würde hier nicht gelten.

und das Wurzelelement des Dokuments .xsd

<schema ... > 

so dass

<xsd:schema> 

korrekt oder nicht als

qualifiziert?

Antwort

0

Zwei Punkte:

(1) Ob ein Start-Tag mit dem Element-Typ Namen schema als einen mit dem Element-Typ Namen effektiv die gleichen xsd:schema hängt von den Namespace-Bindungen, die hier weggelassen. (Der Start-Tag <xsd:schema> kann nicht auftreten, wie der ersten Tag in einem Namensraum-wohlgeformten XML-Dokument, so dass ich nehme an, Sie sind zu paraphrasieren, nicht zu zitieren.)

Wenn das ohne Präfix schema Start-Tag macht "http://www.w3.org/2001/XMLSchema "Der Standard-Namespace, dann ist das wahrscheinlich nicht dein Problem. (Tipp für das nächste Mal, wenn Sie eine Frage stellen, jedoch: Hervorragende Informationen wie Namespace-Bindungen zu vermeiden, macht Ihre Frage weniger klar und weniger wahrscheinlich, nützliche Antworten zu erhalten.)

(2) Die Fehlermeldung, die Sie angeben, legt ein Leerzeichen zwischen Strings ‚Klasse‘ und ‚Pfad‘ - wenn Ihr Referenzdokument auf das Schema tatsächlich „Pfad Klasse:“ beginnt, dann ist das Ihr Problem: die Shibboleth documentation sagt:

Shibboleth definiert einen spezielles URL-Schema, classpath , wodurch sichergestellt wird, dass die Schemadateien vom Klassenpfad aufgelöst werden.

Aus Gründen der URI-Syntax sind Leerzeichen in der Mitte eines Schemennamens nicht zulässig. Sie müssen jeden URI, den Sie auf diese Weise identifizieren möchten, mit "classpath: /", nicht "class path: /" starten.

+0

Ich habe, seit der Veröffentlichung, trat der Tomcat User Support E-Mail-Liste und veröffentlichte mein Problem dort. Einer der Tomcat-Leute scheint zu glauben, dass es etwas mit diesem Fix zu tun haben könnte: https://bz.apache.org/bugzilla/show_bug.cgi?id=56777 –

+0

und ich bin ein wenig verwirrt, was Sie meinen zu so wichtigen Informationen. Meinst du die ... in ? –

+0

Ja; Wenn Sie die Personen auffordern, die Richtigkeit einer Inferenz zu bestätigen, die von der Form der anwendbaren Namespacedeklarationen abhängt, sind die Namespacedeklarationen hervorstechende Informationen. Es gibt gute Ratschläge, um effektive Fragen in den [SO-Hilfedateien] (http://stackoverflow.com/help/how-to-ask) und in Eric Raymonds und Rick Moens Aufsatz [Wie man Fragen auf intelligente Weise stellt] (http://catb.org/~esr/faqs/smart-questions.html). –