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



Reply via email to