JFreeChart und JSP

  • Themenstarter Themenstarter tmp_Heffernan
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

tmp_Heffernan

Gast
Hallo,

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

Code:
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?
 
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 ?! 🙁
 
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?
 
Meine JSP sieht so aus

Code:
<%@ 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 🙁
 
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.
 
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.
 
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 !!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben