REST - Warum Excel-Datei erzeugt wird, nicht tatsächlich erstellt, wenn sie als Web-Anwendung versucht?

StackOverflow https://stackoverflow.com/questions/4614282

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
War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top