Yeah, ditto that. Mind you, we're also using fop-pdf-images. I'd review what jars are actually being loaded - this sounds like a mismatch somewhere.
Ah, java. Run once, run... once. Matt On 24 November 2014 at 20:54, Terence M. Bandoian <tere...@tmbsw.com> wrote: > Hi, Iain- > > This may not help much but I've been able to successfully use > fo:external-graphic in FOP 1.0 on Tomcat 6 and Tomcat 7. The images were > JPEG and OSGI was not used. > > -Terence Bandoian > > > > On 11/24/2014 9:53 AM, Iain Soedring wrote: > >> Hi, >> >> I have an xsl file that includes an external image: >> >> <fo:external-graphic src="/images/BrandGraphic.PNG"/> >> >> When running as a standalone Java application the transformer.transform >> function works, and I get a valid PDF file. >> >> When running in Tomcat/OSGI, on the same server (same JRE), I get the >> following error: >> >> FATAL ERROR: 'java.lang.IllegalArgumentException: Unknown function: >> gatherContextInfo' >> :Unknown function: gatherContextInfo >> >> If I remove the image from the XSL, everything works. >> >> I checked in the fop 1.0 source, and see that this comes from >> >> org.apache.fop.util.text.AdvancedMessageFormat >> >> public FunctionPart(String functionName) { >> this.function = getFunction(functionName); >> if (this.function == null) { >> throw new IllegalArgumentException("Unknown function: " + >> functionName); >> } >> } >> >> Unfortunately no stack trace is output when catching this exception, and >> tracing back through the code I can see various places from where this >> could have got called. >> >> the 'gatherContextInfo' function itself is in >> org.apache.fop.fo.FONode.java, and is overridden in sub-classes. >> >> On the class-loading side, I've verified that the same jars are loaded in >> both tomcat and standalone. The following are the ones that I find are >> essential for my transform to work: >> >> avalon, batik, commons-io, commons-logging, xmlgraphics. >> >> On tomcat there are many more libraries loaded, but the only overlap I >> can see is commons-logging, where my war file already uses a different >> version of this. >> >> I have asked the same question on stackoverflow: >> https://stackoverflow.com/questions/27066409/apachefop- >> tomcat-osgi-error-java-lang-illegalargumentexception-unknown-functio, >> but I haven't get much response beyond what I'd already looked at so far. >> >> One other issue I found running FOP in Tomcat/OSGI, was the need to >> override the PDF renderer, with this code: >> >> FOUserAgent useragent = fopFactory.newFOUserAgent(); >> PDFRenderer pdfrenderer = new PDFRenderer(); >> pdfrenderer.setUserAgent(useragent); >> useragent.setRendererOverride(pdfrenderer); >> >> fopFactory.addElementMapping(new FOElementMapping()); >> ... >> Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, useragent, out); >> >> otherwise the code would fail with: >> >> Caused by: java.lang.UnsupportedOperationException: Don't know how to >> handle "application/pdf" as an output format. Neither an FOEventHandler, >> nor a Renderer could be found for this output format. >> at >> org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:360) >> >> >> >> Does anyone have any idea what could be going wrong here? >> >> Best Regards, >> >> Iain >> Unless stated otherwise above: >> IBM United Kingdom Limited - Registered in England and Wales with number >> 741598. >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org > For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org > >