Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    Path relativo in web application

    Sto sviluppando una web application in java con deploy su Jboss 5.1.

    Ho bisogno di specificare un file che si trova nel .war nel percorso WEB-INF/etc/users.txt

    ho usato il seguente codice:

    File f = new File("/WEB-INF/etc/users.txt");
    PrintWriter out = new PrintWriter(new FileWriter(f, true));

    Viene lanciata la seguente eccezzione:

    java.io.FileNotFoundException: /WEB-INF/etc/users.txt (No such file or directory)


    Se utilizzo come path \\users.txt, il file viene creato nella root del server, es. C:\users.txt

    Come faccio a specificare in una classe .java un path relativo della web application ?
    Ogni popolo ha il governo che si merita...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Path relativo in web application

    Originariamente inviato da Samb1985
    Come faccio a specificare in una classe .java un path relativo della web application ?
    Vedi getRealPath(), getResource() o getResourceAsStream() tutti di ServletContext, a seconda di cosa devi fare.

    Nel tuo caso (scrittura), getRealPath().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    Re: Path relativo in web application

    quindi nella classe java cosa devo specificare come parametro di new File() ?

    ho provato con new File(request.getContextPath()+"//WEB-INF//etc//users.txt") ma non funziona sempre la stessa eccezione.
    Ogni popolo ha il governo che si merita...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Path relativo in web application

    Originariamente inviato da Samb1985
    quindi nella classe java cosa devo specificare come parametro di new File() ?

    ho provato con new File(request.getContextPath()+"//WEB-INF//etc//users.txt") ma non funziona sempre la stessa eccezione.
    Ovviamente no, la specifica inizierebbe con /tuaapp/.... che ovviamente non ha molto senso (su un sistema Unix-like sarebbe dalla "root"!) e tra l'altro non c'è bisogno di mettere due / .

    new File(sc.getRealPath("/WEB-INF/etc/users.txt"))

    dove sc è un riferimento a ServletContext

    getRealPath non funziona (ritorna null) se la applicazione è deployata in un WAR e il container lo usa direttamente, senza "spacchettarlo" (generalmente non è così per default, quindi ok).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    Re: Re: Path relativo in web application

    Originariamente inviato da Samb1985
    quindi nella classe java cosa devo specificare come parametro di new File() ?

    ho provato con new File(request.getContextPath()+"//WEB-INF//etc//users.txt") ma non funziona sempre la stessa eccezione.
    Ok grazie, ho risolto facendo cosi: String path = getServletContext().getRealPath("WEB-INF/etc/users.txt");
    Ogni popolo ha il governo che si merita...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Path relativo in web application

    Originariamente inviato da Samb1985
    Ok grazie, ho risolto facendo cosi: String path = getServletContext().getRealPath("WEB-INF/etc/users.txt");
    La specifica passata a getRealPath deve iniziare con / (che indica la context-root).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    Re: Re: Re: Re: Path relativo in web application

    Originariamente inviato da andbin
    La specifica passata a getRealPath deve iniziare con / (che indica la context-root).
    Ok ho corretto, comunque funziona sia con la / iniziale che senza...
    Ogni popolo ha il governo che si merita...

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.