HI, I am trying the examples of FOP (0.20.3), most FO file run successfully except 'images.fo'.
When I run FOP as a standalone application, all examples work fine, however, I encounter a problem when I try the servlet version. I deployed the fop.war in Tomcat 4.0.3. When I try the 'images.fo', the returned PDF do not have any images. The following messages displayed in the log of Tomcat. ERROR 10189 [fop ] (): Error while creating area : Error with image URL: ../../graphics/xml_feather.gif and no base directory is specified ERROR 10189 [fop ] (): Error while creating area : Error with image URL: ../../graphics/xml_feather_transparent.gif and no base directory is specified ERROR 10189 [fop ] (): Error while creating area : Error with image URL: ../../graphics/fop.jpg and no base directory is specified ERROR 10189 [fop ] (): Error while creating area : Error with image URL: ../../graphics/linux.bmp and no base directory is specified Then I modify the image file path from relative path to absolute path and retry. But this time have another exception, the root cause is listed below. java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument at org.apache.fop.image.analyser.ImageReaderFactory.Make(ImageReaderFactory.jav a:46) at org.apache.fop.image.FopImageFactory.Make(FopImageFactory.java:109) at org.apache.fop.fo.flow.ExternalGraphic.layout(ExternalGraphic.java:125) at org.apache.fop.fo.flow.Block.layout(Block.java:262) at org.apache.fop.fo.flow.Block.layout(Block.java:262) at org.apache.fop.fo.flow.Flow.layout(Flow.java:156) at org.apache.fop.fo.flow.Flow.layout(Flow.java:113) at org.apache.fop.fo.pagination.PageSequence.format(PageSequence.java:296) at org.apache.fop.apps.StreamRenderer.render(StreamRenderer.java:200) at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:182) at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1398) at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator .java:1019) at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XM LDocumentScanner.java:1256) at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner. java:381) at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948) at org.apache.fop.apps.Driver.render(Driver.java:481) at org.apache.fop.apps.Driver.run(Driver.java:554) at FopServlet.renderFO(FopServlet.java:96) at FopServlet.doGet(FopServlet.java:64) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2 46) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: 1012) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107 ) at java.lang.Thread.run(Thread.java:536) I already put all the jar files included in fop-0.20.3 to /fop/WEB-INF/lib in Tomcat. Do anyone have any idea of the above problems, thanks a lot. Ben Ho
