[ 
https://issues.apache.org/jira/browse/FOR-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653902#action_12653902
 ] 

Antoine ROBERT commented on FOR-1074:
-------------------------------------

If you want my opinion about this issue, it could come from the webapp.xml file 

>From line 102 in Trunk we have : 

<!-- Copy custom plugin jars -->
    <for list="${project.required.plugins}" param="name">
      <sequential>
        <echo message="DEBUG : Copy de ${forrest.plugins-dir}/lib/@{name}.jar" 
/>
        <copy file="${forrest.plugins-dir}/lib/@{name}.jar"
                todir="${project.webapp}/WEB-INF/lib"
                failonerror="false"/>
      </sequential>
    </for>

My DEBUG echo message write : 
DEBUG : Copy de 
D:\forrest\apache-forrest-0.9-dev\build\plugins/lib/org.apache.forrest.plugin.output.pdf.jar

This file doesn't exist in forrest trunk :)

But I think what you initially wanted was to copy %{forrest.plugins-dir}/lib to 
${project.webapp}/WEB-INF/lib since the famous class 
"org.apache.cocoon.blocks.fop.FOPNGSerializer" is in the jar : 
"cocoon-fop-ng-impl-special-SNAPSHOT.jar" which you put in 
%{forrest.plugins-dir}/lib

So I would have replace above code to 
<copy todir="${project.webapp}/WEB-INF/lib">
      <fileset dir="${forrest.plugins-dir}/lib">
        <include name="*jar"/>
      </fileset>
    </copy>

I test that, and that works !!! 
So the workaround for all of this issue, is to replace 

<for list="${project.required.plugins}" param="name">
      <sequential>
        <echo message="DEBUG : Copy de ${forrest.plugins-dir}/lib/@{name}.jar" 
/>
        <copy file="${forrest.plugins-dir}/lib/@{name}.jar"
                todir="${project.webapp}/WEB-INF/lib"
                failonerror="false"/>
      </sequential>
    </for>

by 

<copy todir="${project.webapp}/WEB-INF/lib">
      <fileset dir="${forrest.plugins-dir}/lib">
        <include name="*jar"/>
      </fileset>
    </copy>

into webapp.xml file (No need to rebuild forrest)

Could you check that with developpers ? It's a workaround, but i'm not sure 
it's the best solution ...
Thanks


> War is failing because it cannot find the FOPNGSerializer
> ---------------------------------------------------------
>
>                 Key: FOR-1074
>                 URL: https://issues.apache.org/jira/browse/FOR-1074
>             Project: Forrest
>          Issue Type: Bug
>          Components: Launch servlet WAR, Plugin: output.pdf
>    Affects Versions: 0.9-dev
>            Reporter: Thorsten Scherler
>            Priority: Blocker
>
> Do
> cd testing
> forrest seed
> forrest war
> cp build/my-project.war $CATALINA_HOME/webapps/tomcat.war
> lynx http://localhost:8080/tomcat/
> => Internal Server Error
> ==> webapps/tomcat/WEB-INF/logs/core.log <==
> ERROR   (2008-03-03) 09:49.45:186   [access] (/tomcat/) 
> http-8080-2/CocoonServlet: Internal Cocoon Problem
> org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap
>         at [Exception] - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at [ConfigurationException] - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at <map:mount> - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/project/build/tmp/output.xmap:33:147
>         at <map:mount> - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/sitemap.xmap:533:106
>         at 
> org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:112)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
>         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:803)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.avalon.framework.configuration.ConfigurationException: 
> Could not add component defined at 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:542)
>         at 
> org.apache.cocoon.components.container.CocoonServiceManager.addComponent(CocoonServiceManager.java:66)
>         at 
> org.apache.cocoon.core.container.DefaultServiceSelector.configure(DefaultServiceSelector.java:124)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector.configure(ComponentsSelector.java:101)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>         at 
> org.apache.cocoon.core.container.DefaultServiceSelector$Factory.setupInstance(DefaultServiceSelector.java:215)
>         at 
> org.apache.cocoon.core.container.ComponentFactory.newInstance(ComponentFactory.java:133)
>         at 
> org.apache.cocoon.core.container.handler.ThreadSafeComponentHandler.doInitialize(ThreadSafeComponentHandler.java:54)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.initialize(AbstractComponentHandler.java:274)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:128)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.getComponentHandler(CoreServiceManager.java:680)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:532)
>         at 
> org.apache.cocoon.components.container.CocoonServiceManager.addComponent(CocoonServiceManager.java:66)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.parseConfiguration(CoreServiceManager.java:729)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.configure(CoreServiceManager.java:211)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.SitemapLanguage.createServiceManager(SitemapLanguage.java:115)
>         at 
> org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder.build(DefaultTreeBuilder.java:396)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at 
> org.apache.cocoon.core.container.handler.PoolableComponentHandler$ProxyHandler.invoke(PoolableComponentHandler.java:147)
>         at $Proxy8.build(Unknown Source)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.buildConcreteProcessor(TreeProcessor.java:725)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.setupConcreteProcessor(TreeProcessor.java:394)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:288)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114)
>         ... 34 more
> Caused by: java.lang.Exception: Cannot find class 
> org.apache.cocoon.blocks.fop.FOPNGSerializer for component at 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:77)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.getComponentHandler(CoreServiceManager.java:680)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:532)
>         ... 61 more
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.cocoon.blocks.fop.FOPNGSerializer
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         at 
> org.apache.cocoon.core.container.ComponentEnvironment.loadClass(ComponentEnvironment.java:77)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:75)
>         ... 63 more
> ==> webapps/tomcat/WEB-INF/logs/error.log <==
> ERROR   (2008-03-03) 09:49.45:186   [access] (/tomcat/) 
> http-8080-2/CocoonServlet: Internal Cocoon Problem
> org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap
>         at [Exception] - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at [ConfigurationException] - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at <map:mount> - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/project/build/tmp/output.xmap:33:147
>         at <map:mount> - 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/sitemap.xmap:533:106
>         at 
> org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:112)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
>         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:803)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.avalon.framework.configuration.ConfigurationException: 
> Could not add component defined at 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:542)
>         at 
> org.apache.cocoon.components.container.CocoonServiceManager.addComponent(CocoonServiceManager.java:66)
>         at 
> org.apache.cocoon.core.container.DefaultServiceSelector.configure(DefaultServiceSelector.java:124)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector.configure(ComponentsSelector.java:101)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>         at 
> org.apache.cocoon.core.container.DefaultServiceSelector$Factory.setupInstance(DefaultServiceSelector.java:215)
>         at 
> org.apache.cocoon.core.container.ComponentFactory.newInstance(ComponentFactory.java:133)
>         at 
> org.apache.cocoon.core.container.handler.ThreadSafeComponentHandler.doInitialize(ThreadSafeComponentHandler.java:54)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.initialize(AbstractComponentHandler.java:274)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:128)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.getComponentHandler(CoreServiceManager.java:680)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:532)
>         at 
> org.apache.cocoon.components.container.CocoonServiceManager.addComponent(CocoonServiceManager.java:66)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.parseConfiguration(CoreServiceManager.java:729)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.configure(CoreServiceManager.java:211)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.SitemapLanguage.createServiceManager(SitemapLanguage.java:115)
>         at 
> org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder.build(DefaultTreeBuilder.java:396)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at 
> org.apache.cocoon.core.container.handler.PoolableComponentHandler$ProxyHandler.invoke(PoolableComponentHandler.java:147)
>         at $Proxy8.build(Unknown Source)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.buildConcreteProcessor(TreeProcessor.java:725)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.setupConcreteProcessor(TreeProcessor.java:394)
>         at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:288)
>         at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:114)
>         ... 34 more
> Caused by: java.lang.Exception: Cannot find class 
> org.apache.cocoon.blocks.fop.FOPNGSerializer for component at 
> file:/home/thorsten/src/apache/apache-tomcat-6.0.14/webapps/tomcat/build/plugins/org.apache.forrest.plugin.output.pdf/output.xmap:21:120
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:77)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.getComponentHandler(CoreServiceManager.java:680)
>         at 
> org.apache.cocoon.core.container.CoreServiceManager.addComponent(CoreServiceManager.java:532)
>         ... 61 more
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.cocoon.blocks.fop.FOPNGSerializer
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         at 
> org.apache.cocoon.core.container.ComponentEnvironment.loadClass(ComponentEnvironment.java:77)
>         at 
> org.apache.cocoon.core.container.handler.AbstractComponentHandler.getComponentHandler(AbstractComponentHandler.java:75)
>         ... 63 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.