jFreeChart-Fehler

DirkHo

Erfahrenes Mitglied
Hallo,

ich habe testweise ein StackedBar mit jFreeChart (1.0.1) erstellt und alles klappte wunderbar.

Da ich hierbei alles über eine main-Methode und eine StackBar-Klasse, die ich selbst geschrieben habe, gesteuert habe, wollte ich das Ganze nun noch in eine bessere Form bringen und habe mir eine Klasse ChartGenerator erstellt.

Wenn ich nun das Ganze ausführe bekomme ich immer folgende Fehlermeldung:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/jfree/data/general/DatasetUtilities
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/jfree/data/general/DatasetUtilities
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.pages.calculatorTaglib_jsp._jspService(calculatorTaglib_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NoClassDefFoundError: org/jfree/data/general/DatasetUtilities
com.project.testproject.chart.ChartGenerator.createDataset(ChartGenerator.java:151)
com.project.testproject.taglib.CalculatorTag.doStartTag(CalculatorTag.java:54)
org.apache.jsp.pages.calculatorTaglib_jsp._jspx_meth_testproject_005fCalculator_005f0(calculatorTaglib_jsp.java:96)
org.apache.jsp.pages.calculatorTaglib_jsp._jspService(calculatorTaglib_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Hier mal das Beispiel meiner Methode, mit der ich das DatasetUtility erstelle:

Code:
		    public CategoryDataset createDataset() {
		        double[][] data = new double[][]{
		            {370,300}, // orangene Werte
		            {0,50}, // dunkel-blaue Werte
		            {0,20}, // hell-blaue Werte
		        };
		        String[] achsen = new String[] {"Alt", "Neu"};
		        String[] leg = new String[] {"Bli", "Bla", "Blubb"};
		  
		        return DatasetUtilities.createCategoryDataset(leg, achsen, data);
		    }

Die Methode sieht genauso in der alten Version, in der alles funktioniert, aus.

So rufe ich sie:

Code:
	        ChartGenerator bla = new ChartGenerator();
	        CategoryDataset dataset = bla.createDataset();
	        bla.generateChart(dataset);

Hat jemand eine Idee, wo der Fehler liegen könnte? An der Java-Version hat sich genauso etwas geändert, wie an der jFreeChart-Version.

Ich bin echt am Verzweifeln.

Vielen Dank und viele Grüße,

Dirk
 
Zuletzt bearbeitet:
OMG! Ich habe den Fehler gefunden: Es lag einfach nur daran, dass jcommon NICHT in WEB-INF/lib lag (was ich auch nirgends angegeben habe, dass es so war), sondern in einem anderen Projekt verlinkt war, in dem ausschließlich die "Standard-Libs" des Servers sind.

Vielleicht kann mir jemand erklären, warum dies explizit in dem Ordner liegen muss? Deshalb lasse ich das Thema auch noch offen. Wie gesagt, im Standard-Ordner ist's drin und steht so auch im Classpath, aber da kam dann der Fehler.

Danke und Grüße,

Dirk
 
Zurück