JFreeChart und JSP

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?
 
T

tmp_Heffernan

Gast
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

Bekanntes Mitglied
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

Mitglied
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 :(
 

clemson

Bekanntes Mitglied
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

Mitglied
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

Mitglied
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.
Ähnliche Java Themen

Ähnliche Java Themen


Oben