Bonjour,
j'utilise une application cocoon déjà mise en place sur un serveur apache.
J'ai dès problème lors de la génération de mes fichiers PDF.
Après des investigations sur le web je n'ai toujours rien trouvé !
Voici les logs :
- handled-errors.log :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| ERROR (2011-09-28) 11:23.00:237 [sitemap.handled-errors] (/cocoon/ImpressionPdf/D:/DOSSIER_TEMP/MONDOC_20110826.pdf) http-8080-4/PipelineNode:
java.lang.NullPointerException
at org.apache.excalibur.store.impl.AbstractJispFilesystemStore.doGetSize(AbstractJispFilesystemStore.java:330)
at org.apache.excalibur.store.impl.AbstractReadWriteStore.remove(AbstractReadWriteStore.java:226)
at org.apache.excalibur.store.impl.MRUMemoryStore.remove(MRUMemoryStore.java:327)
at org.apache.cocoon.caching.impl.CacheImpl.remove(CacheImpl.java:150)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.validatePipeline(AbstractCachingProcessingPipeline.java:599)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:659)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:541)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:499)
at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:155)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:165)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:162)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:136)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:371)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:312)
at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:165)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:162)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:136)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:371)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:312)
at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
at java.lang.Thread.run(Unknown Source) |
- sitemap.log
INFO (2011-09-28) 11:23.00:237 [sitemap] (/cocoon/ImpressionLiasse/D:/DOSSIER_TEMP/MONDOC_20110826.pdf) http-8080-4/HandleErrorsNode: Processing handle-errors at file:/D:/PROJETS/DEVELOPPEMENT/WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/cocoon/sitemap.xmap:755:24
J'ai du mal à interpréter le message d'erreur ! Serait-ce un problème de cache ou autre ...
Le but de l'application est de visualiser au format pdf un fichier récupérer au format xml. C'est cocoon qui va gérer la transformation et la visualisation.
Je passe donc comme url :
http://localhost:8080/cocoon/ImpressionPdf/D:/DOSSIER_TEMP/MONDOC_20110826.pdf
où D:/DOSSIER_TEMP/MONDOC_20110826.pdf est le chemin vers mon fichier MONDOC_20110826.xml
dans mon sitemap, j'utilise le pipeline "**.pdf" :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
| <?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components ================================ -->
<map:components>
<map:matchers default="wildcard"/>
<map:selectors default="browser"/>
<!--=================Ajout pour sauver le fichier pdf sur le disque INUTILE avec copy-source=======================-->
<map:actions>
<map:action logger="sitemap.action.copy-source" name="copy-source" src="org.apache.cocoon.acting.CopySourceAction"/>
</map:actions>
<!--=================Fin Ajout pour sauver le fichier pdf sur le disque =======================-->
<map:generators default="file"/>
<map:transformers default="xslt"/>
<map:readers default="resource"/>
<map:serializers default="html">
<map:serializer name="vrml" mime-type="model/vrml" logger="sitemap.serializer.vrml" src="org.apache.cocoon.serialization.TextSerializer"/>
<map:serializer name="wml" mime-type="text/vnd.wap.wml" logger="sitemap.serializer.wml" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
<doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
<encoding>ASCII</encoding>
<omit-xml-declaration>yes</omit-xml-declaration>
</map:serializer>
<map:serializer name="svgxml" mime-type="image/svg-xml" logger="sitemap.serializer.svgxml" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
</map:serializer>
<map:serializer name="xhtml" mime-type="text/html" logger="sitemap.serializer.xhtml" src="org.apache.cocoon.serialization.XMLSerializer" pool-max="64" pool-min="2" pool-grow="2">
<doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
<encoding>UTF-8</encoding>
</map:serializer>
<map:serializer name="text" mime-type="text/plain" logger="sitemap.serializer.text" src="org.apache.cocoon.serialization.TextSerializer"/>
<map:serializer name="svg2jpeg" logger="sitemap.serializer.svg2jpeg" src="org.apache.cocoon.serialization.SVGSerializer" mime-type="image/jpeg"/>
<map:serializer name="fo2pdf" logger="sitemap.serializer.fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer" mime-type="application/pdf">
<!-- Ajout pour conf FOP-->
<user-config>../WEB-INF/fop-config.xml</user-config>
</map:serializer>
<map:serializer name="fo2ps" logger="sitemap.serializer.fo2ps" src="org.apache.cocoon.serialization.FOPSerializer" mime-type="application/postscript"/>
<map:serializer name="xls" logger="sitemap.serializer.xls" src="org.apache.cocoon.serialization.HSSFSerializer" mime-type="application/vnd.ms-excel"/>
</map:serializers>
</map:components>
<!-- =========================== Views =================================== -->
<!--
Views provide diffent, well, views to resources. Views are
orthogonal to pipelines. Please refer to the docs.
-->
<map:views>
<map:view name="content" from-label="content">
<map:serialize type="xml"/>
</map:view>
<map:view name="pretty-content" from-label="data">
<map:transform src="stylesheets/simple-xml2html.xsl"/>
<map:serialize type="html"/>
</map:view>
<map:view name="links" from-position="last">
<map:serialize type="links"/>
</map:view>
</map:views>
<!--=================Ajout pour sauver le fichier pdf sur le disque INUTILE avec copy-source=======================-->
<map:flow language="javascript">
<map:script src="pdf.flow"/>
</map:flow>
<!--=================Fin Ajout pour sauver le fichier pdf sur le disque ==========================================-->
<map:pipelines>
<!-- Utility for viewing source xml or html -->
<map:pipeline>
<map:match pattern="**.source">
<map:generate src="cocoon:/{1}"/>
<map:transform src="style/xsl/simple-xml2html.xsl"/>
<map:serialize/>
</map:match>
</map:pipeline>
<map:pipeline>
<map:match pattern="**favicon.ico">
<map:read mime-type="application/ico" src="resources/icons/cocoon.ico"/>
</map:match>
<map:match pattern="*.gif">
<map:read mime-type="image/gif" src="{1}.gif"/>
</map:match>
<map:match pattern="images/**.jpg">
<map:read mime-type="image/jpg" src="resources/images/{1}.jpg"/>
</map:match>
</map:pipeline>
<!--==================Ajout pipeline pour transformation =============================================-->
<!--======Pour les impressions quelque soit le type (nombre d'arguments variables) ===================================-->
<map:pipeline>
<map:match pattern="**.pdf">
<map:generate src="{1}.xml"/>
<map:transform src="principal.xsl"/>
<map:serialize type="fo2pdf"/>
</map:match>
<!--<map:match pattern="**.pdf">
<map:redirect-to uri=""/>
</map:match>-->
<map:match pattern="**.do">
<map:call function="makepdf">
<map:parameter name="folder1" value="{1}"/>
</map:call>
</map:match>
<map:match pattern="**.xml">
<map:act type="copy-source" src="cocoon:/production/{1}.pdf">
<map:parameter name="dest" value="{1}.pdf"/>
</map:act>
<map:generate type="jx" src="success.jx">
<map:parameter name="filename" value="{1}"/>
</map:generate>
<map:serialize type="html"/>
</map:match>
<map:match pattern="*.txt">
<map:redirect-to uri=""/>
<!--<map:read src="{1}.txt"/>-->
</map:match>
<map:match pattern="**/generate-all.html">
<!-- liste de tous les fichiers xml -->
<map:generate type="directory" src="{1}">
<!--<map:parameter name="sort" value="name"/>-->
</map:generate>
<!-- on transforme en une série de <xi:include
href="cocoon://copy-pdf-xxx.html"/> -->
<map:transform src="dir2include.xsl">
<map:parameter name="folder1" value="{1}"/>
</map:transform>
<!-- on réalise l'inclusion qui par effet de bord va copier les
fichiers sur disque -->
<map:transform type="xinclude"/>
<!-- et on présente joliement la liste des fichiers qui ont été
générés -->
<!--<map:transform src="result2html.xsl"/>-->
<!-- terminé! -->
<map:serialize type="html"/>
</map:match>
<map:match pattern="">
<map:generate src="vide.xml"/>
<map:transform src="vide.xslt">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:transform>
<map:serialize type="xhtml"/>
</map:match>
</map:pipeline>
</map:pipelines>
</map:sitemap>
<!-- end of file --> |
L'erreur décrite plus haut apparait de manière aléatoire, je n'ai pas réussi à trouver l'origine. Parfois le document est bien généré et affiché, parfois cocoon est en erreur et le message d'erreur est affiché.
Quelqu'un aurait-il une idée ?
Partager