3 Stimmen

"SAX2-Treiberklasse org.apache.crimson.parser.XMLReaderImpl nicht gefunden", wenn Batik in einer Webanwendung auf Tomcat verwendet wird.

Dies ist möglicherweise auf ein Classpath-Problem zurückzuführen, aber ich bin mir wirklich nicht sicher, da ich diesen Fehler auf einigen Maschinen nicht bekomme.

Der Fehler oben im Stapel ist SAX2-Treiberklasse org.apache.crimson.parser.XMLReaderImpl nicht gefunden. Warum erhalte ich diesen Fehler nur in einigen Umgebungen, aber nicht in anderen? Wie kann ich dies weiter untersuchen und/oder beheben?

Umgebungen:

  • Jetty auf Mac oder PC == OK
  • Tomcat 5 oder 6 auf Mac == OK
  • Tomcat 5 oder 6 auf Win XP == FEHLER
  • Tomcat 6 auf CentOS == FEHLER

Versionen im POM:

  • batik:batik:jar:1.5:compile
  • net.sf.saxon:saxon:jar:8.7:compile
  • batik:batik-transcoder:jar:1.6-1:compile
    • batik:batik-bridge:jar:1.6-1:compile
    • batik:batik-gvt:jar:1.6-1:compile
    • batik:batik-awt-util:jar:1.6-1:compile
    • batik:batik-util:jar:1.6-1:compile
    • batik:batik-gui-util:jar:1.6-1:compile
    • batik:batik-ext:jar:1.6-1:compile
    • xml-apis:xmlParserAPIs:jar:2.0.2:compile
    • batik:batik-script:jar:1.6-1:compile
    • batik:batik-svg-dom:jar:1.6-1:compile
    • batik:batik-dom:jar:1.6-1:compile
    • batik:batik-css:jar:1.6-1:compile
    • batik:batik-xml:jar:1.6-1:compile
    • batik:batik-parser:jar:1.6-1:compile
    • fop:fop:jar:0.20.5:compile
    • batik:batik-1.5-fop:jar:0.20-5:compile
    • xml-apis:xml-apis:jar:1.0.b2:compile
    • xalan:xalan:jar:2.4.1:compile
    • xerces:xercesImpl:jar:2.2.1:compile
    • avalon-framework:avalon-framework:jar:4.0:compile

0 Stimmen

Hallo, Matt. Ich habe dieses Problem. Ich habe fop aus /WEB-INF/lib entfernt und bekomme immer noch den Fehler. Hast du noch ein anderes damit zusammenhängendes Problem herausgefunden? Prost!

0 Stimmen

Ich habe keine anderen damit zusammenhängenden Probleme gefunden, an die ich mich erinnere (vor drei Jahren). Ich habe Maven verwendet, um meine Anwendung zu verpacken, daher hat das Ausschließen des fop-Artefakts in meinem POM verhindert, dass Maven dieses Artefakt verpackt hat. Wenn der Fehler immer noch auftritt, öffnen Sie Ihr WAR und überprüfen Sie das Artefakt und stellen Sie sicher, dass der Tomcat-Server neu gestartet wird.

0 Stimmen

Ich habe es herausgefunden. Ich habe die WAR-Datei nicht bereitgestellt, und es gibt 2 weitere JARs, die mit fop, batik-fop und avalon enthalten sind. Ich habe fop.jar entfernt, aber nicht batik-fop.jar.

8voto

Tero Pelkonen Punkte 81

Danke, das war sehr nützlich.

Auf Win 7 / Tomcat 6 hatte ich genau dasselbe "Fehlen von Crimson" Problem. Ich habe es zum Laufen gebracht, indem ich die Crimson-Bibliotheken hinzugefügt habe, aber die Leistung war schlecht, sehr langsam. Es dauerte etwa 10-15 Sekunden für ein einzelnes Bild-Transkodieren. Schließlich habe ich das Problem gelöst, indem ich das FOP entfernt habe, wie Sie es beschrieben haben, und jetzt ist es wirklich schnell. So sieht es in meinem POM aus:

        batik
        batik-transcoder
        1.6-1
        compile

                fop
                fop

0 Stimmen

Das war auch nützlich, um das Batik-Plugin zum Laufen zu bringen. org.codehaus.mojo batik-maven-plugin 1.0-beta-1 batik batik-transcoder 1.6-1 fop fop

6voto

Matt Punkte 3234

Es stellt sich heraus, dass Apache XML Graphics selbst Crimson dem Klassenpfad hinzufügt, zweimal. Einmal im Apache Batik Transcoder und einmal in Apache FOP.

Da die Bibliotheken alphabetisch in Tomcat geladen werden, hat FOP Crimson zuerst hinzugefügt, aber dann hat auch Batik dasselbe getan.

Ich habe FOP aus dem Projekt POM ausgeschlossen und das Klassenpfadproblem gelöst.

0 Stimmen

Wenn man versucht, die Dateien aus dem /WEB-INF/lib-Ordner zu entfernen, entfernen Sie auch das batik-fop Jar-File.

0voto

JayDi Punkte 1029

Es handelt sich um ein Problem mit den JDK-Versionen. Hier gefunden:

  • Einige JDKs enthalten bereits die crimson Bibliothek und funktionieren einwandfrei auf Entwicklermaschinen;
  • Aber einige JDKs enthalten diese Bibliothek nicht auf Benutzermaschinen und werfen einen Fehler;

Verwenden Sie die folgende Maven-Konfiguration:

    batik
    batik-transcoder
    1.6-1

    crimson
    crimson
    1.1.3

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X