I extracted fop-1.0 and ran it for xml2txt conversion and got an exception on event-model.xml not found. Those files do not exist in the binary release. I noticed that when I build from source I get those files under multiple paths like ./build/classes/org/apache/fop/... and ./build/gensrc/org/apache/fop/... but I get the same exception when I run ./fop from there. This is fop-1.0 release on RHEL5. The command: ./fop -xml ~/input.xml -xsl ~/stylesheet.xslt -c ~/fop.xml -txt ~/result.txt 11-Jan-11 5:46:11 PM org.apache.fop.render.txt.TXTRenderer startRenderer INFO: Rendering areas to TEXT. 11-Jan-11 5:46:12 PM org.apache.fop.fo.FOTreeBuilder fatalError SEVERE: javax.xml.transform.TransformerException: Error reading event-model.xml: http://xml.org/sax/handlers/LexicalHandler 11-Jan-11 5:46:12 PM org.apache.fop.cli.Main startFOP SEVERE: Exception javax.xml.transform.TransformerException: Error reading event-model.xml: http://xml.org/sax/handlers/LexicalHandler at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:302) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130) at org.apache.fop.cli.Main.startFOP(Main.java:174) at org.apache.fop.cli.Main.main(Main.java:205) --------- javax.xml.transform.TransformerException: Error reading event-model.xml: http://xml.org/sax/handlers/LexicalHandler at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2416) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281) at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:299) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130) at org.apache.fop.cli.Main.startFOP(Main.java:174) at org.apache.fop.cli.Main.main(Main.java:205) Caused by: java.util.MissingResourceException: Error reading event-model.xml: http://xml.org/sax/handlers/LexicalHandler at org.apache.fop.events.DefaultEventBroadcaster.loadModel(DefaultEventBroadcaster.java:90) at org.apache.fop.events.DefaultEventBroadcaster.getEventProducerModel(DefaultEventBroadcaster.java:114) at org.apache.fop.events.DefaultEventBroadcaster.createProxyFor(DefaultEventBroadcaster.java:142) at org.apache.fop.events.DefaultEventBroadcaster.getEventProducerFor(DefaultEventBroadcaster.java:129) at org.apache.fop.fonts.FontEventProducer$Provider.get(FontEventProducer.java:43) at org.apache.fop.fonts.FontEventAdapter.getEventProducer(FontEventAdapter.java:44) at org.apache.fop.fonts.FontEventAdapter.fontSubstituted(FontEventAdapter.java:51) at org.apache.fop.fonts.FontInfo.notifyFontReplacement(FontInfo.java:468) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:223) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:401) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:433) at org.apache.fop.fo.properties.CommonFont.getFontState(CommonFont.java:222) at org.apache.fop.layoutmgr.BlockLayoutManager.initialize(BlockLayoutManager.java:84) at org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:120) at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:69) at org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:216) at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:692) at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:149) at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:132) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:337) at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:85) at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:107) at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:238) at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:120) at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349) at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177) at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1399) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) ...11 more caused by java.util.MissingResourceException: Error reading event-model.xml: http://xml.org/sax/handlers/LexicalHandler at org.apache.fop.events.DefaultEventBroadcaster.loadModel(DefaultEventBroadcaster.java:90) at org.apache.fop.events.DefaultEventBroadcaster.getEventProducerModel(DefaultEventBroadcaster.java:114) at org.apache.fop.events.DefaultEventBroadcaster.createProxyFor(DefaultEventBroadcaster.java:142) at org.apache.fop.events.DefaultEventBroadcaster.getEventProducerFor(DefaultEventBroadcaster.java:129) at org.apache.fop.fonts.FontEventProducer$Provider.get(FontEventProducer.java:43) at org.apache.fop.fonts.FontEventAdapter.getEventProducer(FontEventAdapter.java:44) at org.apache.fop.fonts.FontEventAdapter.fontSubstituted(FontEventAdapter.java:51) at org.apache.fop.fonts.FontInfo.notifyFontReplacement(FontInfo.java:468) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:223) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:401) at org.apache.fop.fonts.FontInfo.fontLookup(FontInfo.java:433) at org.apache.fop.fo.properties.CommonFont.getFontState(CommonFont.java:222) at org.apache.fop.layoutmgr.BlockLayoutManager.initialize(BlockLayoutManager.java:84) at org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:120) at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:69) at org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:216) at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:692) at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:149) at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:132) at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:337) at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:85) at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:107) at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:238) at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:120) at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349) at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177) at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1399) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281) at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:299) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130) at org.apache.fop.cli.Main.startFOP(Main.java:174) at org.apache.fop.cli.Main.main(Main.java:205)
If you used the binary release from the ASF, all existing event models are included. It seems that an event model is missing for notification of font substitution. Can you provide a small sample file that displays the problem?
I can confirm this bug is also present on debian, where fop is being build from source. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639162
I'm using Debian's version of fop and I can confirm this bug. Moreover, it happens on every file I've tried. I can provide a sample file if you'd like, but any file is a sample file. I've inspected the build process for the Debian package and the eventResourceGenerator task in the resourcegen target produces no output with ant -v. Whether that indicates whether it's being run or not, I don't know, but it is definitely not generating the files in question.
FWIW, This same issue has prevented us shipping FOP at all in Fedora 15, and with Fedora 16 around the corner, we won't be shipping FOP there either unless we can figure this out :( Our downstream bug: https://bugzilla.redhat.com/show_bug.cgi?id=689930 It's only that the various event-model.xml files don't get generated at build time. The "FOP 1.0-16" referred to in that bug was a version I built that just included those XML files copied directly from the upstream binary. With the files in place, FOP worked fine. But without being able to figure out how to generate them during the build, we can't ship it, so this is a show-stopper for us. :(
FOP's own build process generates the event-model files correctly. Therefore this is not a FOP bug. For alternative build processes I have the following recommendation: We noticed that qdox.jar cannot be inserted in the CLASSPATH variable for the ant build process. Doing so invariably generates an NPE. Even this command: CLASSPATH=lib/build/qdox-1.6.3.jar ant clean resourcegen i.e., using FOP's own qdox jar file, fails with a NPE. Debian now solved the problem by copying their qdox jar into FOP's lib/build directory before the build. The resulting fop.jar contains the required event models, and seems to work well. It would be good if alternative builds of fop would run a number of our junit tests. The fop team should look into this to formulate a recommendation.
I made some notes about possible alternative build procedures on the FOP wiki, http://wiki.apache.org/xmlgraphics-fop/HowTo/BuildFOPAlternatively
batch transition to closed for remaining resolved bugs