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

XSL/XSLT/XPATH XML Discussion :

[ERROR]:org.apache.fop.fo.ValidationException XSL XML FOP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut [ERROR]:org.apache.fop.fo.ValidationException XSL XML FOP
    Bonjour à tous,
    Je suis novice dans l'utilisation de FOP et même au concept XML/XSLT/XSL-FO, et je cherche à générer un PDF à partir d'un fichier XML.
    Pour ce qui est de la génération du fichier XML, je n'ai pas de soucis (j'utilise XMLEncoder pour créer mon XML à partir de bean Java).

    Exemple de XML:

    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
     
    <?xml version="1.0" encoding="UTF-8"?> 
    <java version="1.6.0_18" class="java.beans.XMLDecoder"> 
     <object class="java.util.ArrayList"> 
      <void method="add"> 
       <object class="com.atosorigin.cacc.ir.services.dto.DisplayTransactionDto"> 
        <void property="blablatId"> 
         <string>toto</string> 
        </void> 
        <void property="blablaRef"> 
         <string>000</string> 
        </void> 
        <void property="carID"> 
         <string>015</string> 
        </void> 
        <void property="carNumb"> 
         <string>001</string> 
        </void> 
        <void property="currency"> 
         <string>EUR</string> 
        </void> 
        <void property="currentAmount"> 
         <string>282,50</string> 
        </void> 
        <void property="datePurchase"> 
         <object class="java.sql.Timestamp"> 
          <long>1310018400000</long> 
         </object> 
        </void> 
        <void property="payment"> 
         <string>Cheque</string> 
        </void> 
       </object> 
      </void> 
     </object> 
    </java>
    Un fois la génération faite, je me suis lancé dans la construction du XSL pour pouvoir créer mon Objet XSL-FO:
    J'ai commencé par les bases et je suis bloqué sur cette erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: 
    "{http://www.w3.org/1999/XSL/Format}page-sequence"
    is not a valid child of "fo:layout-master-set"! (No context info available)
    Voici mon XSL:

    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
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml"/>
    <xsl:template match="/java/object/void/object/void" >
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>  
    <fo:page-sequence master-reference="A4">
    	<fo:table-and-caption>
    	<fo:table>
     
    	</fo:table>
    	</fo:table-and-caption>
    </fo:page-sequence>
    </fo:layout-master-set>  
    </fo:root>
    </xsl:template>
    </xsl:stylesheet>
    Pour info:
    voici mon code java pour générer le Stream pour la création du 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
     
    	// Setup input and output files
    			 File xmlfile = new File("testXML.xml");
    			 File xsltfile = new File("TestXSL.xsl");
     
    			 System.out.println("Input: XML (" + xmlfile + ")");
    			 System.out.println("Stylesheet: " + xsltfile);
     
    			 System.out.println("Transforming...");
     
    			// configure fopFactory as desired
    			 FopFactory fopFactory = FopFactory.newInstance();
     
    			 FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
    			 // configure foUserAgent as desired
     
    		//	 ByteArrayOutputStream baosTestXml = new ByteArrayOutputStream();
     
    			// Construct fop with desired output format
    			 Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, baos);
     
    			// Setup XSLT
    			 TransformerFactory factory = TransformerFactory.newInstance();
    			 Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));
     
    			// Set the value of a <param> in the stylesheet
    			 transformer.setParameter("versionParam", "2.0");
     
    			// Setup input for XSLT transformation
    			 Source src = new StreamSource(xmlfile);
     
    			// Resulting SAX events (the generated FO) must be piped through to FOP
    			 Result res = new SAXResult(fop.getDefaultHandler());
     
    			 // Start XSLT transformation and FOP processing
    			 transformer.transform(src, res);
    Merci pour votre aide

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Apres relecture du post... je me suis rendu compte d'une erreur
    mon XSL ressemble à ça maintenant ^^

    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
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml"/>
    <xsl:template match="/java/object/void/object/void" >
    <fo:root>
    <fo:layout-master-set>
      <fo:simple-page-master master-name="A4">
      <fo:region-body margin-top="3cm"/>
      </fo:simple-page-master>
    </fo:layout-master-set>
     
    <fo:page-sequence master-reference="A4">
    	<fo:table-and-caption>
    	<fo:table>
     
    	</fo:table>
    	</fo:table-and-caption>
    </fo:page-sequence>
     
    </fo:root>
    </xsl:template>
    </xsl:stylesheet>
    Du coup Update de l'erreur aussi :p

    org.apache.fop.fo.ValidationException:
    "{http://www.w3.org/1999/XSL/Format}table-and-caption"
    is not a valid child of "fo:page-sequence"! (No context info available)
    [EDIT:] je me base sur le site:
    http://www.w3schools.com/xslfo/xslfo_documents.asp
    D'après le site mon arborescence XML est bonne :
    sert à initialiser le contenu de ma future page (je veux juste afficher un tableau^^)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Nouvelle maj

    Fichier XML:
    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
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml"/>
    <xsl:template match="/java/object/void/object/void" >
    <fo:root>
    <fo:layout-master-set>
      <fo:simple-page-master master-name="A4">
      <fo:region-body margin-top="3cm"/>
      </fo:simple-page-master>
    </fo:layout-master-set>
     
    <fo:page-sequence master-reference="A4">
    <fo:flow flow-name="xsl-region-body">
    	<fo:table-and-caption>
    	<fo:table table-layout="auto" width="100%" border-collapse="collapse">
     
    	<fo:table-header>
    		<fo:table-row keep-together.within-page="always" >
    			<fo:table-cell>
    			<fo:block>
    				Test
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-header>
     
    	<fo:table-body>
    		<fo:table-row>
    			<fo:table-cell>
    				<fo:block>
    				Test
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-body>	
    	</fo:table>
    	</fo:table-and-caption>
    </fo:flow>
    </fo:page-sequence>
     
    </fo:root>
    </xsl:template>
    </xsl:stylesheet>
    Nouvelle erreur:

    WARN [org.apache.fop.apps.FOUserAgent]
    > The following feature isn't implemented by Apache FOP, yet: fo:table-and-caption (on fo:table-and-caption) (No context info available)

    WARN [org.apache.fop.apps.FOUserAgent]
    > The following feature isn't implemented by Apache FOP, yet: table-layout="auto" (on fo:table) (No context info available)

    ERROR [org.apache.fop.layoutmgr.LayoutManagerMapping]
    > No LayoutManager maker for class class org.apache.fop.fo.flow.table.TableAndCaption

    ERROR [org.apache.fop.fo.FOTreeBuilder]
    > javax.xml.transform.TransformerException: java.lang.NullPointerException
    Mon code java n'a pas changé depuis le début.
    J'utilise la version 1.0 de fop (récupérée sur le repository Maven) et le jdk 1.6

    [EDIT:]http://xmlgraphics.apache.org/fop/co...-table-section

  4. #4
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Est-ce que tu lis les messages d'erreur avant de les poster ?

    Dans le lien que tu as posté il est explicitement marqué :
    Element : table-and-caption
    Support in FOP 0.95 (stable) : NON
    Support in FOP 1.0 (stable) : NON
    Support in FOP development : NON

    Alors pourquoi le mettre dans ton code ?

    Pour les messages d'erreur précédents, il était clairement dit que l'élément "fo:layout-master-set" n'acceptait pas les éléments "page-sequence" et "table-and-caption" en tant que fils. Alors pourquoi les mettre ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Pour les premiers messages j'avoue que je n'étais pas très réveillé :p
    Par contre pour le dernier message d'erreur, je le comprends mais je ne vois pas par quoi remplacer les balises/attributs non gérées par FOP :s

  6. #6
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Il faut supprimer (ne pas utiliser) l'élément "table-and-caption" car il n'est pas géré par ta version de FOP.

  7. #7
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    en fait, lorsque FOP effectue la transformation du fo en pdf, il suppose que le fo est bien formé (par exemple, l'élément fo:table doit avoir tous ces éléments). Si tu lui fourni n'importe quoi, alors il te retourne une erreur.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Désolé d'avoir tardé à répondre :s

    Voici les nouvelles:
    J'ai enlevé <fo:table-and-caption>, je pense avoir rajouté les bons attributs à la balise <fo:table>.

    Voici le code:

    XSL:
    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
     
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml"/>
    <xsl:template match="/java/object/void/object/void" >
    <fo:root>
    <fo:layout-master-set>
      <fo:simple-page-master master-name="A4">
      <fo:region-body margin-top="3cm"/>
      </fo:simple-page-master>
    </fo:layout-master-set>
     
    <fo:page-sequence master-reference="A4">
    <fo:flow flow-name="xsl-region-body">
    	<fo:table block-progression-dimension="auto" inline-progression-dimension="auto" table-layout="fixed" >
     
    	<fo:table-header width="16cm" height="10">
    		<fo:table-row keep-together.within-page="always" >
    			<fo:table-cell>
    			<fo:block>
    				Test
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-header >
     
    	<fo:table-body  width="16cm" height="10">
    		<fo:table-row keep-together.within-page="always">
    			<fo:table-cell>
    				<fo:block>
    				Test
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-body>	
    	</fo:table>
    </fo:flow>
    </fo:page-sequence>
     
    </fo:root>
    </xsl:template>
    </xsl:stylesheet>
    Je n'ai plus de WARN dans la stack mais j'ai l'impression que le "fo" est toujours mal formé, pour cause, voici la stack que j'obtient lors de l'exécution de mon code Java:

    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
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
     
    Transforming...
    http-8080-Processor23 2011-07-28 11:04:09,591 DEBUG [FOP] >  target-resolution set to: 72.0dpi (px2mm=0.35277778)
    http-8080-Processor23 2011-07-28 11:04:12,919 ERROR [org.apache.fop.fo.FOTreeBuilder] >  javax.xml.transform.TransformerException: java.lang.NullPointerException
    http-8080-Processor23 2011-07-28 11:04:12,919 ERROR [com.atosorigin.cacc.ir.webapp.exporter.PDFGenerator] >  [PDFGenerator][generatePDF] Building PDF
    ; SystemID: file:/D:/workspace/cacc/cacc-ir/cacc-ir-webapp/src/TestXSL.xsl; Line#: 7; Column#: 23
    javax.xml.transform.TransformerException: java.lang.NullPointerException
    	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2341)
    	at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:682)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    	at com.atosorigin.cacc.ir.webapp.exporter.PDFGenerator.generatePDF(PDFGenerator.java:105)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.exportSelectionPDF(TransactionList.java:199)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.onSubmitFromTransactionGridForm(TransactionList.java:169)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.dispatchComponentEvent(TransactionList.java)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:902)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081)
    	at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerContextEvent(InternalComponentResourcesImpl.java:263)
    	at org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:405)
    	at org.apache.tapestry5.corelib.components.Form$onAction$invocation_1316ffc57d1.invokeAdvisedMethod(Form$onAction$invocation_1316ffc57d1.java)
    	at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
    	at org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
    	at org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
    	at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
    	at org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
    	at org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:910)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081)
    	at org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:75)
    	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at $ComponentEventRequestHandler_1316ffc2a00.handle($ComponentEventRequestHandler_1316ffc2a00.java)
    	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
    	at $ComponentRequestHandler_1316ffc2988.handleComponentEvent($ComponentRequestHandler_1316ffc2988.java)
    	at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
    	at $Dispatcher_1316ffc298a.dispatch($Dispatcher_1316ffc298a.java)
    	at $Dispatcher_1316ffc2981.dispatch($Dispatcher_1316ffc2981.java)
    	at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)
    	at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
    	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at $RequestHandler_1316ffc2978.service($RequestHandler_1316ffc2978.java)
    	at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
    	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
    	at $HttpServletRequestFilter_1316ffc2977.service($HttpServletRequestFilter_1316ffc2977.java)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at $HttpServletRequestHandler_1316ffc2975.service($HttpServletRequestHandler_1316ffc2975.java)
    	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	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.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	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.Http11Processor.process(Http11Processor.java:875)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.NullPointerException
    	at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:265)
    	at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171)
    	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:205)
    	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:291)
    	at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:349)
    	at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:319)
    	at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:623)
    	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    	... 87 more
    ---------
    java.lang.NullPointerException
    	at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:265)
    	at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171)
    	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:205)
    	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:291)
    	at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:349)
    	at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:319)
    	at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:623)
    	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    	at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:682)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
    	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
    	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
    	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
    	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
    	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1170)
    	at com.atosorigin.cacc.ir.webapp.exporter.PDFGenerator.generatePDF(PDFGenerator.java:105)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.exportSelectionPDF(TransactionList.java:199)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.onSubmitFromTransactionGridForm(TransactionList.java:169)
    	at com.atosorigin.cacc.ir.webapp.pages.transaction.TransactionList.dispatchComponentEvent(TransactionList.java)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:902)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081)
    	at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerContextEvent(InternalComponentResourcesImpl.java:263)
    	at org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:405)
    	at org.apache.tapestry5.corelib.components.Form$onAction$invocation_1316ffc57d1.invokeAdvisedMethod(Form$onAction$invocation_1316ffc57d1.java)
    	at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
    	at org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
    	at org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
    	at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
    	at org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
    	at org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:910)
    	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081)
    	at org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:75)
    	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
    	at $ComponentEventRequestHandler_1316ffc2a03.handle($ComponentEventRequestHandler_1316ffc2a03.java)
    	at $ComponentEventRequestHandler_1316ffc2a00.handle($ComponentEventRequestHandler_1316ffc2a00.java)
    	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
    	at $ComponentRequestHandler_1316ffc2988.handleComponentEvent($ComponentRequestHandler_1316ffc2988.java)
    	at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
    	at $Dispatcher_1316ffc298a.dispatch($Dispatcher_1316ffc298a.java)
    	at $Dispatcher_1316ffc2981.dispatch($Dispatcher_1316ffc2981.java)
    	at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)
    	at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
    	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
    	at $RequestHandler_1316ffc2982.service($RequestHandler_1316ffc2982.java)
    	at $RequestHandler_1316ffc2978.service($RequestHandler_1316ffc2978.java)
    	at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
    	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
    	at $HttpServletRequestFilter_1316ffc2977.service($HttpServletRequestFilter_1316ffc2977.java)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
    	at $HttpServletRequestHandler_1316ffc297a.service($HttpServletRequestHandler_1316ffc297a.java)
    	at $HttpServletRequestHandler_1316ffc2975.service($HttpServletRequestHandler_1316ffc2975.java)
    	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	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.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	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.Http11Processor.process(Http11Processor.java:875)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Thread.java:619)
    Mon code Java n'a pas changé depuis les précédents postes.

    Quelqu'un a une idée? ou un fichier XSL-FO sous le coude pour juste une génération de tableau :s

    Merci d'avance^^

  9. #9
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    Loceka t'a demandé de lire "les messages d'erreur avant de les poster".

    Que dis ton message d'erreur ?
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    désolé, je viens de remettre le nez dans le code (pas mal de choses urgentes à faire en parallèle) enfin bon.
    Pour le NullPointerException, je sais ce que c'est :p c'est juste que mes objets sont bien instanciés et que je ne comprenais pas pourquoi j'en avais une justement :s (pas plus chercher vu le peu de temps que j'avais )


    J'ai eu le temps de passer un coup de débugger et du coup, la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SystemID: file:/D:/workspace/cacc/cacc-ir/cacc-ir-webapp/src/TestXSL.xsl; Line#: 7; Column#: 23
    de mon erreur me parle plus
    en effet, j'ai mon SystemId qui est null:


    Par contre j'ai deux questions:
    1) Après avoir regardé, je devrais avoir mon path XSL stocké dans le champ SystemId: est-ce que je me trompe?
    2) pourquoi le champ n'est pas renseigné? j'ai loupé une manip' FOP?

    Merci pour votre aide

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Personnellement, je trouve pas ce message d'erreur d'une clarté extrême.

    Le NPE arrive dans un startElement(). C'est pas lui qui le programme, c'est pas lui qui l'appelle. Quel contrôle peut-on bien avoir dessus, comment trouver comment l'empêcher ? C'est vrai qu'on peut toujours utiliser un débogueur et essayer de remonter la cause, mais pourquoi personne dans ce petit monde n'essaie de clarifier ce qui ne va pas dans les messages d'erreur ?

    Quant à la ligne 7, colonne 23 du XSLT, on peut raisonnablement penser que ça mène au début du template /java/object/void/object/void
    Ben je suis désolé mais je vois pas le problème. En particulier rien qui pourrait possiblement générer une NullPointerException.

    Tu as déjà réussi à utiliser XSL-Fo à partir d'un tutoriel tout fait, qui n'utiliserait pas du tout tes données à toi ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Personnellement, je trouve pas ce message d'erreur d'une clarté extrême.
    Merci je commençais à croire qu'on me prenait pour un ... fou^^

    Je n'ai pas repris de tutos (honte à moi) par contre j'ai pas mal potassé des exemples et je t'avoue ne pas avoir vu (enfin encore trouvé) de thread la dessus :s

    Peut etre que le path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     /java/object/void/object/void
    n'est pas bon? je ne vois pas pourquoi mais on ne sait jamais?

    Pour les données, comme je l'ai expliqué, elles sont générées par XMLEncoder (lib apache) donc je pense que le XML est bien formé. Du coup je ne pense pas que changer de données me feraient avancés :s

    Merci de ta réponse en tous cas thelvin

  13. #13
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Skymaniak Voir le message
    Je n'ai pas repris de tutos (honte à moi) par contre j'ai pas mal potassé des exemples et je t'avoue ne pas avoir vu (enfin encore trouvé) de thread la dessus :s
    Potassé oui. Mais exécuté ?

    Citation Envoyé par Skymaniak Voir le message
    Peut etre que le path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     /java/object/void/object/void
    n'est pas bon? je ne vois pas pourquoi mais on ne sait jamais?
    Eh bien d'abord je pense qu'il est bon, mais quand bien même ce ne serait pas le cas, ça ne devrait pas faire un NullPointerException.

    Citation Envoyé par Skymaniak Voir le message
    Pour les données, comme je l'ai expliqué, elles sont générées par XMLEncoder (lib apache) donc je pense que le XML est bien formé. Du coup je ne pense pas que changer de données me feraient avancés :s
    C'est pas la question. La question c'est d'arriver *une* fois à se servir de FOP, avec un exemple connu pour marcher, et qui n'a rien à voir avec soi.
    Ensuite, et ensuite seulement, de commencer à faire des trucs qui te concernent toi.
    Méthode scientifique, quoi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Je ne pense pas avoir le temps d'ici ce weekend :s
    Je vous tiens au courant dès que j'ai "potassé" ça en profondeur :p
    Merci bien en tous cas!

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/05/2009, 14h41
  2. Version de FOP et fichier xsl pour fop 0.2
    Par Lolitaaa dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 06/10/2008, 12h25
  3. [XSL-FO][FOP] Problème avec <xsl:apply-template/>
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/04/2008, 12h00
  4. [FOP][debutante][ERROR] org.apache.fop.fo.flow.Inline
    Par norkius dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 05/05/2006, 14h31
  5. [XSL-FO] [Débutant] xml, xsl, fo fop pdf ...ahhh !
    Par enigma dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2005, 09h14

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