On Tue, 2007-12-11 at 09:18 +0100, Ferdinand Soethe wrote: > David Crossley wrote: > > > I presume that you will need to operate with our old > > version of Cocoon-2.2 and rework the Cocoon FOP Block. > > Actually, Jeremias (who is helping me with this) suggested > to try and compile a new FOP Block from current coccoon > trunk. But having integrated that > (http://svn.apache.org/viewvc?rev=603165&view=rev) > I'm running into a logging problem with Forrest where > the browser tells me > > > HTTP ERROR: 500 > > > org%2Eapache%2Ecocoon%2Eblocks%2Efop%2EFOPNGSerializer%2EgetLogger%28%29Lorg%2Fapache%2Fcommons%2Flogging%2FLog%3B > > and Jetty says > > > 08:01:19.609 WARN!! Error for /fop-update/xdoc-gif-ok.pdf > >> java.lang.NoSuchMethodError: > >> org.apache.cocoon.blocks.fop.FOPNGSerializer.getLogger()Lorg/apache/commons/logging/Log; > >> at > >> org.apache.cocoon.blocks.fop.FOPNGSerializer.resolve(FOPNGSerializer.java:230) > >> at > >> org.apache.fop.apps.FOURIResolver.resolve(FOURIResolver.java:129) > >> at org.apache.fop.apps.FopFactory.resolveURI(FopFactory.java:729) > >> at org.apache.fop.apps.FOUserAgent.resolveURI(FOUserAgent.java:385) > >> at org.apache.fop.apps.FOUserAgent.resolveURI(FOUserAgent.java:358) > >> at > >> org.apache.fop.image.ImageFactory.loadImage(ImageFactory.java:190) > >> at org.apache.fop.image.ImageLoader.loadImage(ImageLoader.java:56) > >> at > >> org.apache.fop.image.ContextImageCache.getImage(ImageFactory.java:432) > >> at > >> org.apache.fop.image.ImageFactory.getImage(ImageFactory.java:157) > >> at > >> org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:70) > >> at org.apache.fop.fo.FObj.processNode(FObj.java:125) > >> at > >> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:320) > >> at > >> org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:185) > >> at > >> org.apache.cocoon.xml.AbstractXMLPipe.startElement(AbstractXMLPipe.java:94) > >> at > >> org.apache.cocoon.environment.internal.EnvironmentChanger.startElement(EnvironmentStack.java:140) > >> at > >> org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204) > >> at > >> org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277) > >> at > >> org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:243) > >> 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.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) > >> at > >> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) > >> at > >> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) > >> 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.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) > >> at > >> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) > >> 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.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.run(TransformerImpl.java:3458) > >> at > >> org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:406) > >> at > >> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55) > >> at > >> org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:585) > >> at > >> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55) > >> at > >> org.apache.cocoon.transformation.AbstractSAXTransformer.endDocument(AbstractSAXTransformer.java:377) > >> at > >> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55) > >> at > >> org.apache.cocoon.transformation.XIncludeTransformer$XIncludePipe.endDocument(XIncludeTransformer.java:184) > >> at > >> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55) > >> at > >> org.apache.cocoon.sitemap.DefaultContentAggregator.generate(DefaultContentAggregator.java:135) > >> at > >> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537) > >> at > >> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:174) > >> at > >> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:722) > >> at > >> org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:347) > >> at > >> org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:97) > >> at > >> org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:276) > >> at > >> org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:118) > >> at > >> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:530) > >> at > >> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:174) > >> at > >> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:437) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:137) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:86) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:116) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223) > >> at > >> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:81) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223) > >> at > >> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:81) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:155) > >> at > >> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77) > >> at > >> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:95) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:292) > >> at > >> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:223) > >> at > >> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:289) > >> at org.apache.cocoon.Cocoon.process(Cocoon.java:557) > >> at > >> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:364) > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > >> at > >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354) > >> at > >> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) > >> at > >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1808) > >> at > >> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1758) > >> at org.mortbay.http.HttpServer.service(HttpServer.java:879) > >> at org.mortbay.http.HttpConnection.service(HttpConnection.java:790) > >> at > >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952) > >> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807) > >> at > >> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197) > >> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289) > >> at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501) > > According to Jeremias this is because Coccoon has switched > from Avalon to Spring and is now using an Apache Commons Logger.
Did you try to "just" add commons logging as well (drop the lib)? > > So his advice is to re-compile the new FOP block with the > Coccoon version we are currently using in Forrest. > (Which is perhaps what David meant, is it?) ..or (better) update our cocoon version to the current cocoon one or switch to cocoon-2.1.x. Otherwise we are really starting to fork cocoon. > > Now could somebody perhaps explain to me in simple terms how > to best accomplish that (recompile that block)? I think that is not that easy, since they did not only switch the container but as well they building engine (now maven). Basically you need to get our cocoon revision and then manually patch the FOP block from our revision to current HEAD of the block. You need to analyze every single change and decide whether or not it is container related, since you do not want any changes that are using Spring features. That leaves you with a forked FOP block that should be build with ant instead of maven. Then you need to find the old documentation how to build a block (I reckon looking at the 2.1.x docu may do). The task is not that trivial and leaves us with a fork. HTH a wee bit. salu2 > > Thanks, > Ferdinand > -- Thorsten Scherler thorsten.at.apache.org Open Source Java consulting, training and solutions
