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

Documents Java Discussion :

Génération d'un document RTF


Sujet :

Documents Java

  1. #1
    Membre à l'essai
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut Génération d'un document RTF
    Bonjour,

    J'utilise l'API RTFTemplate avec l'EDI Eclipse pour la génération d'un document RTF. Je ne rencontre aucun problème lorsque de l'éxecution du code sous Eclipse. Mais lorsque je mets le projet sous forme d'un jar éxecutable, une exception est levée lors de la création du RTFTemplate. Si quelqu'un peut m'aider à résoudre ce problème. Je vous en remercie.

    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
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ftlTransformer' defined in class path resource [net/sourceforge/rtf/rtftemplate-config.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.collections.ArrayStack: method <init>(I)V not found
    Caused by: java.lang.NoSuchMethodError: org.apache.commons.collections.ArrayStack: method <init>(I)V not found
    	at org.apache.commons.digester.Digester.<init>(Digester.java:151)
    	at net.sourceforge.rtf.document.transformer.config.DigesterTransformerConfig.getTransformerConfig(DigesterTransformerConfig.java:66)
    	at net.sourceforge.rtf.document.transformer.config.DigesterTransformerConfig.getTransformerConfig(DigesterTransformerConfig.java:32)
    	at net.sourceforge.rtf.template.AbstractRTFDocumentTransformer.<clinit>(AbstractRTFDocumentTransformer.java:40)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    	at java.lang.reflect.Constructor.newInstance(Unknown Source)
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:84)
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:60)
    	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:52)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:640)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:626)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:381)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:68)
    	at net.sourceforge.rtf.helper.RTFTemplateBuilder.newRTFTemplateBuilder(RTFTemplateBuilder.java:45)
    	at com.bnpparibas.mcm.atp.assembling.template.DeliveryRTFDocument.createDeliveryRTFDocument(DeliveryRTFDocument.java:229)
    	at com.bnpparibas.mcm.atp.assembling.step.BuildStep.generateDeliveryRTFDocument(BuildStep.java:633)
    	at com.bnpparibas.mcm.atp.assembling.step.BuildStep.executeStep(BuildStep.java:454)
    	at com.bnpparibas.mcm.atp.assembling.NavigationHandler$2.run(NavigationHandler.java:256)

  2. #2
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour derlone,

    Je pense que ton erreur vient du fait que tu n'utilises pas la bonne version de JAR de commons-collections. Essaie d'utiliser les memes versions de JAR que celles distribuees par RTFTemplate.

    Pour information j'ai décidé d'abandonner RTFTemplate pour le projet XDocReport qui permet d'utiliser des documents ODT (OpenOffice) ou Docx (MS Word) pour le rapport.

    XDocReport n'a pas encore les memes fonctionnalites que RTFTemplate mais est beaucoup plus puissant (plus performant, plus modulaire, possibilité de convertir son rapport en PDF, XHTML, meilleur support WEB, support OSGi...).

    Pour vous en rendre compte, vous avez une démo en ligne sur http://xdocreport.opensagres.cloudbees.net/ ou vous pouvez generer des rapports (en modifiant le data-model) et la possibilité de convertir le rapport en temps reel (des que vous modifier le data model, une iframe est rafraichit avec la conversion XHTML et PDF).

    Il n'y a pas encore de release (prévu debut Juin), mais les sources sont disponibles et http://code.google.com/p/xdocreport/...uildXDocReport permet d'expliquer comment construire XDocReport avec Maven et m2Eclipse.

    Bonne journée

    Angelo

  3. #3
    Membre à l'essai
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par azerr Voir le message
    Bonjour derlone,

    Je pense que ton erreur vient du fait que tu n'utilises pas la bonne version de JAR de commons-collections. Essaie d'utiliser les memes versions de JAR que celles distribuees par RTFTemplate.

    Pour information j'ai décidé d'abandonner RTFTemplate pour le projet XDocReport qui permet d'utiliser des documents ODT (OpenOffice) ou Docx (MS Word) pour le rapport.

    XDocReport n'a pas encore les memes fonctionnalites que RTFTemplate mais est beaucoup plus puissant (plus performant, plus modulaire, possibilité de convertir son rapport en PDF, XHTML, meilleur support WEB, support OSGi...).

    Pour vous en rendre compte, vous avez une démo en ligne sur http://xdocreport.opensagres.cloudbees.net/ ou vous pouvez generer des rapports (en modifiant le data-model) et la possibilité de convertir le rapport en temps reel (des que vous modifier le data model, une iframe est rafraichit avec la conversion XHTML et PDF).

    Il n'y a pas encore de release (prévu debut Juin), mais les sources sont disponibles et http://code.google.com/p/xdocreport/...uildXDocReport permet d'expliquer comment construire XDocReport avec Maven et m2Eclipse.

    Bonne journée

    Angelo
    Tout d'abord merci pour ces nouvelles informations. J'ai suivi tes conseils en utilisant le JAR de commons-collections contenu dans la dernière version rtftemplate-1.0.1-b14-src.zip. Mais le changement de JAR n'a pas résolu le problème.

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Essaie d'utiliser tous les JARs commons, velocity...de la distribution et verifie qu'il n'y en a a pas d'autres qui prennent la main sur tou JAR (ex si tu es dans une appli WEB, verifies que ton serveur ne contient pas ce JAR).

    Avec XDocReport je n'utilise pas les JAR commons-collection qui t'apporte que des problèmes quand tu essaie de faire cohabiter plusieurs versions de JAR (ce qu ej epense que tu as comme cas).

    Angelo

  5. #5
    Membre à l'essai
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par azerr Voir le message
    Essaie d'utiliser tous les JARs commons, velocity...de la distribution et verifie qu'il n'y en a a pas d'autres qui prennent la main sur tou JAR (ex si tu es dans une appli WEB, verifies que ton serveur ne contient pas ce JAR).

    Avec XDocReport je n'utilise pas les JAR commons-collection qui t'apporte que des problèmes quand tu essaie de faire cohabiter plusieurs versions de JAR (ce qu ej epense que tu as comme cas).

    Angelo
    Bon j'ai pris tous les JARS de la distribution mais ça ne marche toujours pas. Je n'utilise pas d'application WEB. Je développe un outil graphique en SWT. Le choix du RTFTemplate a été la solution la plus simple dans le cadre de ce pprojet.

  6. #6
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    C'est un probleme de commons-collection (uen mauvaise version utilisée). Essaie de te creer un nouveau projet et de tester RTFTemplate sans ton application.

    Angelo

  7. #7
    Membre à l'essai
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Le problème a été résolu. En faite ArrayStack est utilisé à la fois par la librairie commons-collections et commons-beanutils. Dans le Java Build Path d'Eclipse, commons-beanutils est mise avant commons-collections. Lors de l'éxecution, c'était l'ArrayStack de commons-beanutils qui était utilisé. Ce qui n'est pas le cas lors que l'éxecution avec le jar. Dans le MANIFEST.MF commons-collections étais mise avant commons-beanutils. La mauvaise librairie était utilisée d'où l'exception levée. Je te remercie azerr pour ton aide.

  8. #8
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Merci de ton information. Bonne chance pour la suite.

    Angelo

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

Discussions similaires

  1. [Tableaux] Génération de document RTF dynamiquement.
    Par gamerome dans le forum Langage
    Réponses: 1
    Dernier message: 12/04/2006, 12h27
  2. extraire une partie d'un document rtf
    Par yac dans le forum Oracle
    Réponses: 12
    Dernier message: 08/01/2006, 10h44
  3. [C#][1.1] Imprimer des documents RTF
    Par SmokE dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/12/2005, 09h47
  4. Recherche documentation RTF
    Par BigBenQ dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 17/10/2005, 11h57
  5. [.NET] Génération d'un document XML
    Par bart64 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/05/2005, 13h56

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