Отдых - почему сгенерированный файл Excel на самом деле не создан при попытке в качестве веб-приложения?

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

Вопрос

Я создал простое REST web app Это было бы создать Excel file и положить в current directory.Но как-то сгенерированный Excel не в каталоге. На самом деле это даже не создается.

Выход "done" показано в GlassFish server log Таким образом, процесс фактически добирается до конца без какой-либо ошибки. Единственное, что я подозриющую, это путь к файлу, я указываю на «MyExciLethatwouldSotshowup».

Я дал полный путь или относительный путь, который я могу думать о том, что файл Excel еще не появляется. Интересно, Если я не запускаю это как веб-приложение (то есть поставить код в локальной главной () функции и запустить его, это работает)Таким образом, я думаю, что что-то делать с Glassfish, но не может действительно выяснить :(

  • Glassfish v3
  • REST / JAX-RS
  • Excella Framework для генерации электронной таблицы Excel из шаблона (MyTemplate.xls)

Кодовый фрагмент

    @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
Это было полезно?

Решение

Вот почему не стоит кодировать, когда утомлял / сверхурочно работал ....

Я забыл добавить 2 строки кода в конце, который на самом деле генерирует Excel ... Стоит мне пару часов отладки .. (Не спрашивайте, как я отладки: P

ReportProcessor reportProcessor = new ReportProcessor();
 reportProcessor.process(outputBook);

BTW, сгенерированный файл хранятся в DIR ниже по умолчанию, если вы не укажете.

 //C:\Users\m-takayashiki\.netbeans\6.9\config\GF3\domain1
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top