'Batik nicht im classpath' Fehler beim ausführen der servlet
Schreibe ich eine Erweiterung der FopServlet.java enthalten in Apache FOP.
Meine Plattform ist Linux CentOS 5.7-64bit, mit Tomcat 5.5.
Den servlet
'funktioniert', aber ich bin nicht in der Lage zu verarbeiten SVG-Dateien.
Den Fehler bekomme ich, wenn Tomcat läuft die servlet
ist
'Batik nicht im classpath'.
Aber in 'webapps/fop/WEB-INF/lib'
es ist 'batik-all-1.7.jar'
- und alle anderen Gläser.
Ich bin kein java-Experte, deshalb bin ich nicht auf das problem zu fokussieren; googeln um, vielleicht ist es eine fehlende jar, aber welche?
AVVERTENZA: Batik not in class path
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1862)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:888)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1341)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1220)
at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown Source)
at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.getImage(PreloaderSVG.java:122)
at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.access$100(PreloaderSVG.java:105)
at org.apache.fop.image.loader.batik.PreloaderSVG.preloadImage(PreloaderSVG.java:73)
at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:175)
at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:128)
at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:122)
at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:81)
at org.apache.fop.fo.FObj.processNode(FObj.java:123)
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:282)
at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171)
at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1072)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
at org.apache.fop.servlet.FopServlet.render(FopServlet.java:260)
at org.apache.fop.servlet.FopServlet.renderFO(FopServlet.java:199)
at org.apache.fop.servlet.FopServlet.doGet(FopServlet.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1374)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1220)
... 64 more
InformationsquelleAutor AndrewQ | 2011-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint sich um ein Fehler in Fop, wo Sie vergessen haben, um eine Abhängigkeit.
Die fehlende Klasse in der JAR-Datei -
xml-apis-ext.jar
zur Verfügung, Die auch von der Apache xml-commons-Projekt.InformationsquelleAutor Nate
Die Fehlermeldung ist irreführend, das ist wirklich ein Mangel von xml-commons-external.
InformationsquelleAutor Edwin Buck
Wenn Sie ausführen, Batik von fedora mit der .jar-Datei es ist sehr schmerzhaft, aufgrund der java-ignorieren der -classpath-flag.
Ich gehe davon aus batik in /usr/share/java
Wählen Sie den Standort entsprechend Ihrem system
Eine Lösung könnte die folgende sein:
erstellen Sie ein scratch-Verzeichnis (ich nehme an, Sie sind superuser, trotzdem kann man immer sudo-Befehle)
Dieser Ausgabe den Inhalt der jar-Datei in scratch, dann erstellen Sie ein MANIFEST.MF-Datei oder nehmen Sie den Ausgang einer von der Müllkippe
Nun Bearbeiten Sie das MANIFEST.MF-Datei (ich mag vi benutzen, verwenden alle Ihre bevorzugten)
Fügen Sie ein Class-Path: - Zeile in der MANIFEST.MF wie zum Beispiel:
Dann schließen Sie die Datei und erstellen Sie die jar-Datei
Gehören alle jar, batik geschachtelte Klassen
Dann können Sie es verwenden!
beispielsweise
Und das ist!!!
InformationsquelleAutor Adolfo