Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JSP] Problema con creazione file

    è tutto il pomeriggio che cerco di capire il perchè nn riesco a creare file nella mia web app.
    ne ho fatto il deploy su tomcat7 e tutto funziona a parte la creazione dei file.
    all'interno della root del sito ho creato una directory download e gli ho dato i permessi 777 (il server è su linux).
    poi da una Servlet richiamo una classe per salvare i dati in pdf:
    codice:
    import com.itextpdf.text.*;
    import com.itextpdf.text.pdf.PdfPCell;
    import com.itextpdf.text.pdf.PdfPTable;
    import com.itextpdf.text.pdf.PdfWriter;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    public class ExportPdf {
    
        private DBManager dbm = DBManager.getInstance();
    
        public void createPdf() throws FileNotFoundException, DocumentException, ClassNotFoundException, SQLException {
            Font fontMap = new Font(Font.FontFamily.COURIER, 9);
            Font fontTestata = new Font(Font.FontFamily.COURIER, 10, Font.BOLD);
            Document document = new Document(PageSize.A4, -65F, -65F, 20F, 20F);
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("download\\books.pdf"));
            document.open();
            int[] cellWidths = {50, 30, 30, 12, 30, 30};
            PdfPTable pdftable = new PdfPTable(6);
            pdftable.setWidths(cellWidths);
            PdfPCell cellTitle = new PdfPCell(new Paragraph("TITLE", fontTestata));
            cellTitle.setColspan(1);
            PdfPCell cellAuthor = new PdfPCell(new Paragraph("AUTHOR", fontTestata));
            cellAuthor.setColspan(1);
            PdfPCell cellEditor = new PdfPCell(new Paragraph("EDITOR", fontTestata));
            cellEditor.setColspan(1);
            PdfPCell cellPrice = new PdfPCell(new Paragraph("PRICE", fontTestata));
            cellPrice.setColspan(1);
            PdfPCell cellIsbn = new PdfPCell(new Paragraph("ISBN", fontTestata));
            cellIsbn.setColspan(1);
            PdfPCell cellNote = new PdfPCell(new Paragraph("NOTE", fontTestata));
            cellNote.setColspan(1);
            pdftable.addCell(cellTitle);
            pdftable.addCell(cellAuthor);
            pdftable.addCell(cellEditor);
            pdftable.addCell(cellPrice);
            pdftable.addCell(cellIsbn);
            pdftable.addCell(cellNote);
            ArrayList<ArrayList<String>> list = dbm.exportBook();
            for (int i = 0; i < list.size(); i++) {
                for (int j = 0; j < (list.get(i)).size(); j++) {
                    PdfPCell cellMap = new PdfPCell(new Paragraph((list.get(i)).get(j), fontMap));
                    cellMap.setColspan(1);
                    pdftable.addCell(cellMap);
                }
            }
            document.add(pdftable);
            document.close();
        }
    }
    quando però provo ad lanciare la servlet ottengo sempre questo errore:
    download\books.pdf (Permesso negato)
    ed infatti dentro la cartella nn c'è nessun file.
    qualche idea?

  2. #2
    ho notato anche un'altra cosa.
    se metto un percorso assoluto tipo /home/utente/Desktop ho lo stesso messaggio.
    ma se ad esmpio lancio l'applicazione da netbeans su windows e gli dico di salvare il file in C:\books.pdf nn ho problemi.
    forse il problema è linux a questo punto.
    ma più che dargli i massimi permessi in scrittura nn so che fare.

  3. #3
    ho lasciato la creazione del file alla servlet e poi lo passo al metodo che crea il pdf:
    codice:
    // SERVLET
    switch (request.getParameter("exp")) {
                        case "excel":
                            file = new File(getServletContext().getRealPath("/download/books.xls"));
                            file.createNewFile();
                            ExportXls xls = new ExportXls();
                            xls.create(file);
                            response.sendRedirect("download.jsp?exp=excel");
                            break;
                        case "pdf":
                            file = new File(getServletContext().getRealPath("/download/books.pdf"));
                            file.createNewFile();
                            ExportPdf pdf = new ExportPdf();
                            pdf.createPdf(file);
                            response.sendRedirect("download.jsp?exp=pdf");
                            break;
    nn devo neanche impostare i permessi della directory donwload in questo modo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.