[ https://issues.apache.org/jira/browse/FOR-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655120#action_12655120 ]
David Crossley commented on FOR-1074: ------------------------------------- Thanks Antoine. I reckon that you have found the problem. It is a general problem for all plugins that provide supporting jars. I did some testing: Added the following plugins to "project.required.plugins" in my test project's forrest.properties file: org.apache.forrest.plugin.input.dtdx This one provides some supporting jar files in its lib directory. It does not provide any java code of its own. Similar to the PDF plugin. org.apache.forrest.plugin.input.PhotoGallery This one does not provide any supporting jars. However it does have some Java code of its own. Doing 'forrest war' only copies the built jar from "PhotoGallery", but not the supporting jars from "dtdx". You said: > 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 :) Yes, because there is no java code in that plugin. Our Ant target needs to be smarter. Your patch fixes that and more. I searched via Forrestbar and found this in the Issue Tracker: FOR-989 forrest war - does not copy plugin jars to WEB-INF/lib directory It is somewhat related, but it is exactly at the time of preparing the 0.8 release, showing that we found the issue but only addressed part of it. Forrest is a small project and we need more developers like you, that use different parts of it and take the time to investigate an issue. > 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.