Téléchargé IRPORT-4.6.0 pour Linux et lors de la création d'un nouveau rapport via le menu Fichier-> New ..., le nouveau rapport n'est pas affiché dans l'aperçu, mais le message d'erreur cvc-complex-type.3.2.2 attribute 'uuid' is not allowed to appear in element 'jasperreport'
au lieu.
Le même message d'erreur se produit même lors du choix de la compatibilité 4.5.0 dans les options. Le même message d'erreur se produit également lors de l'ouverture d'un fichier de rapport qui a été produit par d'autres utilisateurs d'IRPORT-4.6.0 (Windows).
Les fichiers de rapport ont leur schéma à http://jasperreports.sourceforge.net/xsd/jasperreport.xsd
, mais ce fichier de schéma ne mentionne pas de uuid
.
Quel pourrait être le problème?
J'ai trouvé une réponse:
J'ai ouvert le fichier JRXML avec NotePad ++ et j'ai fait une "recherche et remplacer" de uuid="\w*-\w*-\w*-\w*-\w*"
et une expression régulière sélectionnée, avec une chaîne vide, toutes les occurrences de cette mauvaise étiquette ont été supprimées.
Travaillé pour moi.
En Ireport Designer, dans la fenêtre Options, vous pouvez modifier le mode de compatibilité à la version que vous préférez. Pour moi, si je mettais la compatibilité à JasperReport 3.5.1, lorsque je sauvegarderai le rapport, l'UUID est tout supprimé.
Salutations
Ouvrez le rapport dans le Notpad ++ et simplement supprimer Uuid et son numéro. Après avoir compilé le rapport approprié et générera le rapport ... J'ai le même problème et je résolvy de cette façon ..
Si vous utilisez IREPORT 4.6 ou plus, le meilleur moyen de résoudre le problème avec UUID est utile, utilisez le ressort similaire ou supérieur, car l'attribut UUID est nouvellement introduire à partir de la version 4.6. Sinon, si vous retirez manuellement l'UUID du fichier JRXML, l'UUID sera à nouveau placée dans des balises correspondantes sur la compilation suivante ...
Je n'utilise pas Linux .but que vous créez un rapport Utilisez IREPORT DESIGNER-XX. Vous ajoutez la même version JASPERREPORTE (JASPORREPORT-XX) JAR dans votre projet.
Je viens de suggérer mon collègue qui rencontre également le problème ceci:
sed -i 's/ uuid="[^"]*"//g' $(find * -name \*.jrxml)
Je n'utilise normalement pas SED (1)-i
Mais elle est sur GNU/Linux, donc ce n'était pas un problème ici. Plus la solution professionnelle Unix de résoudre ce problème est la suivante:
find * -name \*.jrxml -print0 | while IFS= read -d '' -r file; do
ed -s "$file" <<-'EOF'
1,$g/ uuid="[^"]*"/s///g
w
q
EOF
done
(Ces quatre espaces sont des onglets, sinon cela ne fonctionnera pas, et vous avez besoin mksh (1) ou une autre coquille pouvant lire une entrée séparée de nul.)
Vous pouvez également utiliser Perl:
find * -name \*.jrxml -print0 | xargs -0 Perl -pi -e 's/ uuid="[^"]*"//g'
Ou quelque chose comme ça, de toute façon, en fonction de vos besoins, votre xargs (1) , etc.-)
Dans mon cas, je viens de supprimer uuid="63f04b11-4b7e-4cf1-99b5-a5ec6db799d6"
J'ai généré un exemple de rapport pour tester cela fonctionnait parfaitement
Donc, vous pouvez essayer en supprimant uuid=" "
J'ai une bonne solution facile.
Je supporte des rapports sur Jasper Server 4.5, avec Jasper Studio 5.5
Ce problème s'est produit dans mon cas à cause des entrées de path de classe dupliquées, plus particulièrement des entrées des anciennes versions de JasperReports-Core-Renderer.jar et JasperReports-Extensions.jar (dans Options -> ClassePath).
Ces entrées dupliquées sont apparues après l'importation de paramètres lors d'une mise à niveau de IREPORT. Apparemment, cela est dû à un bogue dans IRPORT en raison de laquelle les anciennes versions ne sont pas retirées du parcours de classe.
Ainsi, évitez l'importation de paramètres des versions précédentes ou supprimez manuellement .jars obsolètes.