9
votes

Flyingsaucer renduer.setdocument jette une exception "ruisseau"

J'ai des problèmes de création d'un PDF à l'aide de l'exemple simple trouvé Voici . C'est ma première fois d'essayer de l'utiliser et j'ai essayé quelques choses et beaucoup de recherches, mais je n'ai pas trouvé de raison pour laquelle l'erreur génère. L'erreur provient du renduer.setdocument (URL); code> ligne. Si quelqu'un a des idées, des suggestions ou des alternatives, il serait grandement apprécié.

ERROR:  'Stream closed'
org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). java.io.IOException: Stream closed
    at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:191)
    at org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:71)
    at org.xhtmlrenderer.swing.NaiveUserAgent.getXMLResource(NaiveUserAgent.java:211)
    at org.xhtmlrenderer.pdf.ITextRenderer.loadDocument(ITextRenderer.java:134)
    at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:138)
    at com.asiaprice.service.email.template.CompletePdf.createpdf(CompletePdf.java:28)


1 commentaires

En général, mon conseil est "Obtenir la source, définir un point d'arrêt dans lequel l'exception est lancée. Cette exception particulière n'a pas vraiment de sens dans ce contexte. La seule chose que je peux penser, c'est que le FileOutPutStream Impossible d'ouvrir pour une raison quelconque.


5 Réponses :


0
votes

est "échantillons / firstdoc.xhtml" le fichier du tutoriel? Est-ce dans le bon répertoire et accessible? XHTMLRenderer n'accepte que le code XHTML propre et est très strict. Si quelque chose est faux, vous obtiendrez une exception.

Dans certains de mes projets, j'utilise JTIDY pour nettoyer la source avant de rendu.


0 commentaires

1
votes

J'ai résolu ce problème en remplaçant simplement xxx

avec xxx


0 commentaires

0
votes

Qu'est-ce qui se passe réellement ici, c'est le setingdocument (...) appel exécute et rendu ne peut pas ouvrir un introuvable (généralement parce que Soit le fichier n'existe pas ou il n'y a pas suffisamment de privilèges pour y accéder). Le correctif serait de remplacer cette référence avec un fichier ou d'une URL en direct que l'application peut toucher.


0 commentaires

1
votes
 File_To_Convert = "src/file.html";

1 commentaires

Peut-on passer une mappage de ressort dans la chaîne File_To_Convert? String toConvert = "/Dailyflight.do";



11
votes

renduer.setdocument peut lancer une exception "Flux close" si le XHTML références d'un fichier que le rendu ne peut pas trouver, tel qu'un fichier CSS.

Les symptômes de cela ne correspondent pas exactement aux affiches originales, car "Impossible de charger la ressource XML" n'apparaît pas dans le message d'erreur, je comprends ceci pour le bénéfice de ceux qui viennent ici via Google.


1 commentaires

Ouais, assurez-vous que toutes les références dans la XHTML peuvent être résolues. Pourrait également envelopper cela dans un essai / capture pour éviter tout type de traces de pile étrange