REST - Warum Excel-Datei erzeugt wird, nicht tatsächlich erstellt, wenn sie als Web-Anwendung versucht?
Frage
Ich habe einfach REST web app
dass Excel file
und in current directory.
setzen schaffen würde
Aber irgendwie die erzeugte Excel ist nicht im Verzeichnis. Eigentlich ist es nicht einmal erstellt werden.
Der Ausgang "done"
wird in GlassFish server log
gezeigt so tatsächlich der Prozess ohne Fehler bis zum Ende erhalten. Das einzige, was ich zu ahnen bin, ist der Dateipfad I für „myExcelFileThatWouldNotShowUp“ bin angeben.
Ich habe vollständigen Pfad oder einen relativen Pfad ich denken kann, aber Excel-Datei nicht noch auftauchen. Interessanterweise , wenn ich laufen diese nicht als Web-App (d setzen Sie den Code in der lokalen Funktion main () und führen Sie es, es funktioniert) So denke ich, etwas mit Glassfish zu tun, kann aber nicht wirklich herausfinden: (
- Glassfish v3
- REST / JAX-RS
- Excella Rahmen Excel-Tabelle aus Vorlage (myTemplate.xls) zu erzeugen,
Code-Snippet
@Path("horizontalProcess")
@GET
@Produces("application/xml")
public String getProcessHorizontally() {
try {
URL templateFileUrl = this.getClass().getResource("myTemplate.xls");
// getPath() outputs...
// /C:/Users/m-takayashiki/Documents/NetBeansProjects/KogaAlpha/build/web/WEB-INF/classes/local/test/jaxrs/myTemplate.xls
System.out.println(templateFileUrl.getPath());
String templateFilePath = URLDecoder.decode(templateFileUrl.getPath(), "UTF-8");
//specify output path which is current dir and should create
//myExcelFileThatWouldNotShowup.xls but it is not..
String outputFileDir = "myExcelFileThatWouldNotShowUp";
//<<template path>>, <<output path>>, <<file format>>
ReportBook outputBook = new ReportBook(templateFilePath, outputFileDir, ExcelExporter.FORMAT_TYPE);
ReportSheet outputSheet = new ReportSheet("myExcelSheet");
outputBook.addReportSheet(outputSheet);
//this is printed out so process actually gets here
System.out.println("done!!");
}
catch(Exception e) {
System.out.println(e);
}
return null;
}//end method
Lösung
Deshalb sollte man keinen Code, wenn sie müde / Überstunden gearbeitet ....
ich habe vergessen, am Ende 2 Zeilen Code hinzufügen, die die Excel tatsächlich generieren ... kostet mich paar Stunden Debuggen .. (nicht fragen, wie ich war das Debuggen: p
ReportProcessor reportProcessor = new ReportProcessor();
reportProcessor.process(outputBook);
Btw, erzeugte Datei im Verzeichnis gespeichert sind unten als Standard, wenn Sie nicht angeben.
//C:\Users\m-takayashiki\.netbeans\6.9\config\GF3\domain1