Jasper-Berichte: org.codehaus.groovy.control.CompilationFailedException

In diesem Blogbeitrag erfahren Sie, wie Sie ein bestimmtes Problem/eine bestimmte Ausnahme lösen, das bei der Arbeit mit Jasper Reports und Java-Frameworks auftritt. Wenn Ihnen dieser Blogbeitrag bei der Lösung Ihres Problems hilft, posten Sie Ihren Kommentar bitte im Kommentarbereich. Wenn nicht, schreiben Sie uns bitte Ihr Problem und die Jasper Reports-Ausnahme mit weiteren Details.

Wenn Sie mit Jasper Reports arbeiten und nicht ordnungsgemäß mit den richtigen Spracheinstellungen kompiliert wurden, würde die Ausnahme auftreten java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException. Wenn Sie ein Java-Entwickler sind, fragen Sie sich, warum zum Teufel danach gesucht wird Groovy API org.codehaus.groovy.control.CompilationFailedException Das hat nichts mit Ihrem Java-Projekt zu tun.

Das Problem besteht darin, dass beim Erstellen von JRXML (es ist die XML-Vorlagendatei von Jasper Reports, die das eigentliche Layout des Berichts enthält. Dieses Layout kann mit den Tools iReport oder Jasper Studio erstellt werden) eine Option zum Angeben der Sprache vorhanden ist analysiert das XML und konvertiert es in den PDF-Bericht. Dieser JasperReports unterstützt mehrere Sprachen wie Java, Groovy usw. Wenn Sie im Java-Projekt arbeiten, müssen Sie das Sprachattribut als „Java“ angeben.

  • Lesen Sie auch: Schließungen in Groovy

Bei der oben genannten Ausnahme (org.codehaus.groovy.control.CompilationFailedException) würde dies auftreten, wenn Sie die Sprache auf Groovy festgelegt haben und dann versuchen, die Java-Webanwendungen auszuführen. Die Laufzeit würde nach der Groovy-API zum Parsen der JasperReports suchen. Standardmäßig ist die Sprache im Dropdown-Menü der Berichtseigenschaften auf Java eingestellt. Unten finden Sie den Screenshot, wie er im JasperStudio-Fenster angezeigt wird. Dasselbe fehlt, wenn der Wert Java ist (da es sich um einen Standardwert handelt) und jede andere Sprache, die Sie in der XML-Quelle als language=“Groovy“ finden können.

Lösung: Um das oben genannte Problem zu beheben, aktualisieren Sie die Sprache im Bericht als Java und kompilieren Sie sie dann. Es wird ohne Probleme funktionieren. Wenn Sie iReport/JasperStudio verwenden, wählen Sie das Stammobjekt in Ihrem Berichtsinspektor aus. Wählen Sie dann im Eigenschaftenfenster im Dropdown-Menü „Sprachen“ die Option „Java“ aus. Wenn Sie den Quellcode der JRXML-Datei bearbeiten, entfernen Sie language=“groovy“ vollständig aus der Datei. Es wird der Standardwert von Java berücksichtigt.

Caused by: java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName (JRClassLoader.java:157)
	at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName (JRClassLoader.java:115)
	at net.sf.jasperreports.engine.JasperCompileManager.getCompiler (JasperCompileManager.java:854)
	at net.sf.jasperreports.engine.JasperCompileManager.compile (JasperCompileManager.java:354)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport (JasperCompileManager.java:614)
	at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView. loadReport(AbstractJasperReportsView.java:511)
	at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView. loadReport(AbstractJasperReportsView.java:476)
	at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView. initApplicationContext(AbstractJasperReportsView.java:306)
	at org.springframework.context.support.ApplicationObjectSupport.initApplication Context(ApplicationObjectSupport.java:119)
	at org.springframework.web.context.support.WebApplicationObjectSupport. initApplicationContext(WebApplicationObjectSupport.java:72)
	at org.springframework.context.support.ApplicationObjectSupport. setApplicationContext(ApplicationObjectSupport.java:73)
	at org.springframework.context.support.ApplicationContextAwareProcessor. invokeAwareInterfaces(ApplicationContextAwareProcessor.java:117)
	at org.springframework.context.support.ApplicationContextAwareProcessor. postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:92)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory. applyBeanPostProcessorsBeforeInitialization (AbstractAutowireCapableBeanFactory.java:396)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory. initializeBean (AbstractAutowireCapableBeanFactory.java:1505)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory. doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
	... 52 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control. CompilationFailedException

Ich hoffe, dieser Blogbeitrag hilft Ihnen, das oben genannte Problem zu lösen. Wenn Sie mit Jasper Reports arbeiten und auf Probleme stoßen, schreiben Sie uns bitte im Kommentarbereich.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen