# JFreeChart und JSP



## tmp_Heffernan (13. Jul 2006)

Hallo,

folgender Code funktioniert ohne Probleme, wenn ich es als Java Application laufen lassen


```
package grafik;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.xy.*;
import java.io.File;
import org.jfree.data.io.*;
import org.jfree.chart.plot.*;
import org.jfree.data.xy.XYDataset;

public class XYChartExample {

	public static void main(String[] args) {
		//		 Create a simple XY chart
		XYSeries series = new XYSeries("XYGraph");
		series.add(1, 1);
		series.add(1, 2);
		series.add(2, 1);
		series.add(3, 9);
		series.add(4, 10);
		//		 Add the series to your data set
		XYSeriesCollection dataset = new XYSeriesCollection();
		dataset.addSeries(series);
		//		 Generate the graph
		JFreeChart chart = ChartFactory.createXYLineChart(
		"XY Chart", // Title
		"x-axis", // x-axis Label
		"y-axis", // y-axis Label
		dataset, // Dataset
		PlotOrientation.VERTICAL, // Plot Orientation
		true, // Show Legend
		true, // Use tooltips
		false // Configure chart to generate URLs?
		);
		try {
		ChartUtilities.saveChartAsJPEG(new File("Z:\\stuff\\chart.jpg"), chart, 500, 300);
		} catch (Exception e) {
		System.err.println("Problem occurred creating chart.");
		}		
	}
}
```

Diesen möchte ich nun per JSP Datei aufrufen.

Entsprechend abgeändert bekomme ich die Fehlermeldung

javax.servlet.ServletException: org/jfree/data/xy/XYDataset

und

java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset

Da es als Apllikation funktioniert verwirrt mich die Fehlermeldung irgendwie. Hat jemand eine Idee?


----------



## tmp_Heffernan (13. Jul 2006)

Ich kann die Java Klasse innerhalb einer anderen Java Klasse aufrufen. Wenn ich aber Versuche das über einen JSP Aufruf zu bewerkstelligen bekomm ich eben diese Fehlermeldung.

Wo ist der Unterschied ?!


----------



## clemson (13. Jul 2006)

hmmm, ist die entsprechende jar im classpath, wenn dus über die webapp variante machst??

bzw. wie schaut denn die jsp aus? hast du die benötigten klassen mittels der import direktive eingebunden?


----------



## heffernan (13. Jul 2006)

Meine JSP sieht so aus


```
<%@ page language="java" %>
<%@ page import = "java.sql.Connection, java.sql.*, grafik.*, db.*, java.*, java.util.*"%>

<% 
String[] bla = new String[2];
XYChartExample.main(bla);
%>
```

Er soll ja nicht mal einen Rückgabewert bekommen. Schlichtes ausführen der Klasse reicht aus. Ich steh da echt auf'm Schlauch und mein Wissen über JSP / SErvlets reicht für das Lösen des Problems nicht aus


----------



## clemson (13. Jul 2006)

nochmal meine frage, ob die freechart.jar im classpath deiner webapp liegt??


oder mach mal eine "dumme" methode in deine XYChartExample, und probier diese dann in deiner jsp auszuführen... wenn das funktioniert, dann können ma das mal zumindest ausschließen.


----------



## heffernan (14. Jul 2006)

Aeh naja, ich habe die bieden *.jar Dateien per

Rechtsklick aufs Projekt -> Propertis -> Java Build Path -> Librarys -> Add External JAR File hinzugefügt.

Die Dateien selber liegen in "WEB-INF/lib" Ordner.


----------



## heffernan (14. Jul 2006)

Ok, neues Proejkt erstellt und die benötigten Komponenten und Dateien eingefügt. Alles genau identisch durchgeführt und nun gehts. Das verstehe wer will 

Jetzt noch eine Frage am Schluss:

ChartUtilities.saveChartAsJPEG(new File("Z:\\stuff\\chart.jpg"), chart, 500, 300);

Wie setze ich diesen Pfad relativ? ..\\ funktioniert jedenfalls nicht 

Danke trotzdem !!!


----------

