IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Exception sous Apache Cocoon


Sujet :

Développement Web en Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut Exception sous Apache Cocoon
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    D'après mes dernières investigations il semblerait que le problème serait lié à la cache.
    J'ai réussi à trouvé une action qui se répète tout le temps.

    En effet, lorsque je lance la première visualisation de mon pdf cela marche parfaitement, puis lors de la seconde il y a une erreur, la 3ème est bonne, la 4ème est en erreur et ainsi de suite.

    Le même document tombe en erreur une fois sur 2 lorsque j'essaye de le visualiser par cocoon.

    Je vais essayer de voir des configurations spécifique de cache...

    Je suis ouvert à toute proposition !

    Merci d'avance.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    Trouvé

    Merci à tous pour votre aide, à bientôt !

    A oui la solution à mon problème pour ceux que ça pourrait intéresser, retrait de la cache sur le pipe :
    dans mon sitemap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <map:pipeline type="noncaching">
            <map:match pattern="**.pdf">
                     <map:generate src="{1}.xml"/>
                     <map:transform src="principal.xsl"/>
                     <map:serialize type="fo2pdf"/>
            </map:match>
            ...
    </map:pipeline>
    Voili voilou à bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Struts]Gestion d'exception sous struts
    Par orus2 dans le forum Struts 1
    Réponses: 5
    Dernier message: 22/12/2005, 11h01
  2. exception sous delphi savoir l'unité
    Par mm30@laposte.net dans le forum Langage
    Réponses: 1
    Dernier message: 20/12/2005, 15h46
  3. Proble avec un vhosts sous Apache (Mandrake 10.1)
    Par __fabrice dans le forum Apache
    Réponses: 2
    Dernier message: 27/05/2005, 13h11
  4. Réponses: 2
    Dernier message: 23/06/2004, 16h35
  5. Réponses: 3
    Dernier message: 01/06/2004, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo