cuchulainn
Mitglied
Hallo alle zusammen,
ich versuche gerade mit JExcel zu arbeiten. Und zwar möchte ich es in einer Web-Anwendung mit Hibernate und IceFaces zusammen verwenden. Ich arbeite mit Eclipse und dem IceFaces-Plugin.
Jetzt habe ich mir eine Klasse ExcelUtil geschrieben, die mehrere Methoden anbieten soll, um bestimmte Daten in einer Excel-Datei abzuspeichern. So weit komme ich aber nicht, weil ich jedes mal eine "java.lang.NoClassDefFoundError: jxl/write/WritableWorkbook" erhalte.
Aber die Datei jxl.jar befindet sich im Verzeichnis /WEB_INF/lib wie alle anderen jars auch. Eclipse erkennt auch die imports jxl.* und jxl.write.*.
Woran kann das noch liegen? Hat jemand eine Idee?
Im Folgenden noch meine Klasse. Ich versuche, die Methode createAlphabeticalLodgerList() aufzurufen. Dann erscheint die Exception direkt am Anfang. Er betritt die Methode nicht einmal. Es wird wohl nicht an meinem Code liegen. Wenn dort Fehler drin sind, machen die sich noch nicht bemerkbar.
Bei allen anderen jars gab es keine Probleme, wenn ich sie einfach ins lib-Verzeichnis kopiert habe. Mehr habe ich nie tun müssen.
Hat jemand eine Idee, woran das liegen könnte?
ich versuche gerade mit JExcel zu arbeiten. Und zwar möchte ich es in einer Web-Anwendung mit Hibernate und IceFaces zusammen verwenden. Ich arbeite mit Eclipse und dem IceFaces-Plugin.
Jetzt habe ich mir eine Klasse ExcelUtil geschrieben, die mehrere Methoden anbieten soll, um bestimmte Daten in einer Excel-Datei abzuspeichern. So weit komme ich aber nicht, weil ich jedes mal eine "java.lang.NoClassDefFoundError: jxl/write/WritableWorkbook" erhalte.
Aber die Datei jxl.jar befindet sich im Verzeichnis /WEB_INF/lib wie alle anderen jars auch. Eclipse erkennt auch die imports jxl.* und jxl.write.*.
Woran kann das noch liegen? Hat jemand eine Idee?
Im Folgenden noch meine Klasse. Ich versuche, die Methode createAlphabeticalLodgerList() aufzurufen. Dann erscheint die Exception direkt am Anfang. Er betritt die Methode nicht einmal. Es wird wohl nicht an meinem Code liegen. Wenn dort Fehler drin sind, machen die sich noch nicht bemerkbar.
Code:
package de.waldhausweg7.utils;
import java.io.File;
import java.util.List;
import javax.faces.event.ActionEvent;
import jxl.*;
import jxl.write.*;
import de.waldhausweg7.model.Lodger;
import de.waldhausweg7.service.LodgerService;
public class ExcelUtil {
public static final String FILE_ALPHABETICAL_LIST = "alphabetischeMieterliste.xls";
public static final String ALPHABETICAL_LODGERLIST = "Alphabetische Mieterliste";
/**
* Anzahl der Zeilen in der ersten Spalte.
*/
public static final int ROWS = 6;
public void createAlphabeticalLodgerList() {
try {
WritableWorkbook workbook = Workbook.createWorkbook(new File(FILE_ALPHABETICAL_LIST));
WritableSheet sheet = workbook.createSheet(ALPHABETICAL_LODGERLIST, 0);
LodgerService lodgerService = new LodgerService();
List lodgerList = lodgerService.getLodgerList();
// Die ersten 30 Zeilen.
for (int i = 0; i < ROWS; i++) {
Lodger lodger = (Lodger)lodgerList.get(i);
// Eintragen des Namens
Label labelName = new Label(i, 0, (lodger.getSurName() + ", " + lodger.getFirstName()));
sheet.addCell(labelName);
// Eintragen der Zimmernummer
Label labelRoom = new Label(i, 1, ((Integer)lodger.getCurrentRoom().getRoomId()).toString());
sheet.addCell(labelRoom);
}
for (int i = ROWS; i < lodgerList.size(); i++) {
Lodger lodger = (Lodger)lodgerList.get(i);
// Eintragen des Namens
Label labelName = new Label(i, 0, (lodger.getSurName() + ", " + lodger.getFirstName()));
sheet.addCell(labelName);
// Eintragen der Zimmernummer
Label labelRoom = new Label(i, 1, ((Integer)lodger.getCurrentRoom().getRoomId()).toString());
sheet.addCell(labelRoom);
}
workbook.write();
workbook.close();
} catch (Exception e) {
System.out.println("ExcelUtil.createAlphabeticalLodgerList: " + e.getMessage());
}
}
public void saveAlphabeticalLodgerList(ActionEvent event) {
createAlphabeticalLodgerList();
}
}
Bei allen anderen jars gab es keine Probleme, wenn ich sie einfach ins lib-Verzeichnis kopiert habe. Mehr habe ich nie tun müssen.
Hat jemand eine Idee, woran das liegen könnte?