Impossible d'initialiser class net.sf.jasperreports.moteur.util.JRStyledTextParser
j'essaie d'afficher mes rapports sur le navigateur , mais je reçois cette erreur:
ce qui est étrange, c'est que cela ne se produit que lorsque j'essaie de générer les rapports à partir de la version installée sur le serveur, mais pas lorsque je le fais localement à partir de mon pc
avez-vous une idée de ce qui se passe ?
16 réponses
cela peut aussi bien être causé par un répertoire Java 'temp' manquant/inaccessible. Dans La Police.java, les fichiers temporaires sont créés:
Files.createTempFile("+~JF", ".tmp").toFile();
sur un système, le dir' temp ' manquait sous le dossier Tomcat mais Java a été configuré pour l'utiliser:
-Djava.io.tmpdir=C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\temp
BTW. la première fois, après avoir redémarré Tomcat, Le service lançait en fait une IOException, mais ensuite JasperReports a mis en cache quelque chose et lors des appels ultérieurs, la trace de la pile était exactement comme indiqué ici.
cela ressemble à un problème de mode sans tête. Vous devez définir l' java.awt.headless
propriété true
. Qui peut être fait en utilisant:
static {
System.setProperty("java.awt.headless", "true");
}
Ou, par réglage de la tête de la propriété dans votre démarrage de tomcat commande -Djava.awt.headless=true
en outre, vous pouvez lire plus sur pourquoi cela est nécessaire, vous pouvez lire sur le mode sans tête ici
il s'agit d'un bocal manquant dans le problème du chemin de classe.
j'ai eu ce problème et j'ai trouvé qu'en ajoutant les pots manquants au chemin de classe il a résolu le problème.
extrait de l'article suivant java.dzone.com l'article J'ai trouvé que les pots minimaux nécessaires sont...Maintenant, Les versions chiffres ont changé, mais avec ces bibliothèques seulement j'ai réussi à l'obtenir travailler.
- jasperreports-2.0.4.jar
- communs-digesteur-1.7.jar
- communes-collections-2.1.jar (commons-collections.jar)
- commons-logging-1.0.2.jar
- commons-beanutils.jar
- iText-2.0.7.jar (utilisé infor PDF l'exportation)
pour ceux qui sont encore confrontés à ce problème: sur Ubuntu Server 12.04 avec headless OpenJDK JRE, il a été simplement résolu par
apt-get install ttf-dejavu-extra
Pour résoudre le problème, procédez de la manière suivante:
- Commutation de l'Open JDK de Sun JDK
- Installed MS Core Fonts
- Emballés JasperReport bibliothèque de polices pot avec l'application
cela peut être un problème de mémoire, redémarrer le serveur.
j'ai eu cette erreur lors du déploiement de springboot app (y compris jasper reporting) dans Docker container.Le problème était avec openjdk: 8-jdk-alpine que j'ai utilisé pour construire un environnement Docker container. Il y a un bug dans le support des polices. Donc je suis passé à openjdk: 8-jre (ou OpenJDK 7 versions vont aussi aider) et ça a fonctionné pour moi. j'ai passé des jours à corriger ce bug.
un peu tard, Mais voici pourquoi nous avons eu ce problème... Nous avons récemment commencé à développer avec IntelliJ au lieu de Eclipse. Nous avons simplement oublié D'exécuter IntelliJ en tant qu'administrateur... Nous avions fait cela avec Eclipse depuis longtemps déjà, mais nous n'y avions tout simplement pas pensé avec IntelliJ. En fin de compte, je suppose que les polices n'ont pas été trouvées ou un dossier n'a pas été trouvé car il n'y avait pas suffisamment de droits pour lire/écrire sur le lecteur C.
Eu la même erreur apparemment JRStyledTextParser est à l'aide de la dépendance à partir de xml-api En ajoutant xml-apis Je l'ai corrigé
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
dans mon cas j'utilisais des polices Arial pour cela j'ai configuré des polices arial dans irfonts.XML qui était comme ci-dessous
< normal>
< / normal>
mais il doit être de la forme :
< normal><
/normal>
< / fontFamily>
ainsi leur était un espace avant l'étiquette de fin de chaque étiquette dans la configuration ci-dessus fichier.
Je l'ai réparé en enlevant l'espace entre eux.
j'ai cherché plusieurs heures pour le même problème, et ma solution est aucun des autres mentionnés.
en raison d'une mauvaise mise à jour de la version de mes rapports jasper, j'avais plusieurs versions du fichier JAR jasperreports sur mon classpath. Assurez-vous que vous n'avez qu'un seul fichier JAR jasperreports...
cela pourrait aider, j'ai eu la même erreur et toutes les autres solutions n'ont pas fonctionné.
Je l'ai corrigé en mettant java8 à jour.
dans notre cas, il a aidé à supprimer le serveur temp (donc en s'assurant qu'il n'y a pas de duplicités jar) et redémarrer le serveur. Conseil: essayez ceci au cas où l'erreur commencerait à se produire après une nouvelle version (mais a fonctionné avant et rien de pertinent n'a changé dans la version)
j'ai fait face au même problème sur ma machine de développement. Fondamentalement, il s'est produit en raison de problème dans le serveur d'application ( Apache tomcat)
en gros, j'ai accidentellement supprimé le " temp " dossier dans la racine du serveur. Jasper ne peut donc pas compiler le rapport et produire le rapport.
dans mon cas, le problème était avec le jdk8 que j'utilisais pour construire l'image du docker, mais après quelques recherches, je suis passé à jre. Ça a réparé mon bug. Je pense que vous pouvez essayer n'importe quelle image plutôt que d'utiliser jdk8.
vous pouvez essayer de faire un déclassement en jdk7, ça me va.
désolé mon anglais!