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

    [JSP] i file che scrivo con JSP dove si trovano nel fylesystem?

    Buon giorno a tutti! Ho il seguente problema: quando scrivo files di qualunque tipo attraverso le JSP non riesco a individuarli sul filesystem, come mai? Inoltre non riesco a leggere un file per esempio che si trova nella mia home! Potete darmi qualche suggerimento?

    Per esempio il seguente codice alza un FileNotFoundException

    Codice:

    codice:
    FileInputStream fileInputStream=new FileInputStream("/home/diego/file.dat"); // Il file esiste nel filesystem ma JSP non riesce a leggerlo
    ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);
    
    // leggo un oggetto di tipo XXX dal file
    
    objectInputStream.close();
    Mentre il seguente codice va bene, però il file file.dat non riesco ad individuarlo nel filesystem.

    Codice:

    codice:
     FileOutputStream fileOutputStream=new FileOutputStream("file.dat");
    
     ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream);
    
     objectOutputStream.writeObject(
      new Post("Administrator", "admin@system.it", "Primo post!", "Nulla di particolare!!!")
     );
    
     objectOutputStream.close();
    
     FileInputStream fileInputStream=new FileInputStream("file.dat");
     ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);
    
    // leggo un oggetto di tipo XXX dal file
    
     objectInputStream.close();
    Confido in voi!!!!
    Info: OS Ubuntu 9.04, Server tomcat6

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Le classi del package java.io lavorano sempre e solo su percorsi fisici, non su URL.

    Quindi, se vuoi scrivere/leggere un file che si trova nella tua home page devi utilizzare un codice tipo questo:

    codice:
    ServletContext context = getServletContext();
    String realPath = context.getRealPath("/home/diego/file.dat");
    FileInputStream fis = new FileInputStream( realPath );
    Stessa cosa per la scrittura.


    Spiegazione: l'URL /home relativo al tuo sito è un identificativo WEB che, nella macchina dove è fisicamente presente il tuo sito, potrebbe corrispondere, ad esempio, a questo percorso:


    C:\Programmi\Tomcat 6.0\webapps\TuoSito\

    (se, ad esempio, il tuo web server è una macchina Windows che monta Tomcat 6 in quella posizione).

    Quindi è necessario tradurre la URL in un percorso fisico all'interno della macchina.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

    Risolto

    Salve ragazzi! E grazie LeleFT! Cmq come da titolo ho risolto!
    Ecco la soluzione, la cosa può essere utile a qualcuno altro:

    1) portarsi in /etc/default
    2) aprire il file tomcat6, su ubuntu sudo gedit tomcat6
    3) modificare la riga #TOMCAT_SECURITY=yes in TOMCAT_SECURITY=no (attenzione a cancellare l'asterisco)
    4) riavviare il server
    5) creare il file dove vi pare e in base a quale gruppo appartenete modificare i permessi sul file, per farla breve
    chmod 777 filename
    6) Il gioco è fatto!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ok, tu parlavi di directory home su sistema Linux e io pensavo alla home page del sito... come non detto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5

    RE

    Grazie LeleFT! Va bene anche cosi? Giusto?
    Se si vado a postare anche su http://www.ubuntu-it.org! Non vorrei dare una soluzione errata o non consigliabile!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: RE

    Originariamente inviato da MiChiamo.Diego
    Grazie LeleFT! Va bene anche cosi? Giusto?
    Se si vado a postare anche su http://www.ubuntu-it.org! Non vorrei dare una soluzione errata o non consigliabile!
    Credo di sì.
    Non ho mai installato Tomcat su un sistema Linux, quindi non ho mai avuto a che fare con quella direttiva, ma ho visto che viene consigliato in più occasioni di settarla a NO anche con l'utilizzo di particolari librerie (che evidentamente devono scrivere su file system).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7

    RE

    Per una massima trasparenza, ecco il link al post su http://www.ubuntu-it.org

    http://forum.ubuntu-it.org/index.php...tml#msg2105637

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.