PDA

View Full Version : [JAVA] Scrivere un file sul server


carosene
24-10-2009, 23:32
Non riesco a capire perché il codice seguente non salva niente. Non viene restituita alcuna eccezione.
Mi potreste dare un suggerimento?


File file = new File("prova.txt");
logger.warn(file.getPath());
if(!file.exists()){
try {
boolean success = file.createNewFile();
logger.warn(success);
} catch (IOException e) {
logger.error(e.getMessage());
}
}


PS:Uso Tomcat 6.

^TiGeRShArK^
25-10-2009, 08:37
..hai provato a guardare nella directory base da dove vengono lanciate le classi? :fagiano:
Se fai un cerca su tutta la dir di tomcat con il nome del file imho dovresti trovarlo. :p

euphyllia87
25-10-2009, 08:53
..hai provato a guardare nella directory base da dove vengono lanciate le classi? :fagiano:
Se fai un cerca su tutta la dir di tomcat con il nome del file imho dovresti trovarlo. :p

Vero, però potrebbe essere anche un problema di permessi di scrittura...

^TiGeRShArK^
25-10-2009, 08:56
Vero, però potrebbe essere anche un problema di permessi di scrittura...

in quel caso gli avrebbe sparato l'eccezione, ma a quanto ho capito dice di non ricevere alcuna eccezione...

euphyllia87
25-10-2009, 08:57
in quel caso gli avrebbe sparato l'eccezione, ma a quanto ho capito dice di non ricevere alcuna eccezione...

Dici? Non saprei sai? Però boh... non ho mai usato Tomcat :)

carosene
25-10-2009, 09:59
Ho fatto altre prove:

Questo codice funziona:
File file = new File(.getSession().getServletContext().getRealPath("/"),"prova.txt");
e salva il file qui:
Workspace eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Nome applicazione

Ho notato che il codice postato prima si comporta in modo strano: Il metodo file.createNewFile() restituisce TRUE la prima volta che viene richiamato mentre FALSE tutte le altre volte. Come se il file fosse stato creato, ma in tutta la workspace di eclipse e nella directory di installazione di Tomcat non c'è niente.

Escluderei che si tratti di un problema di permessi perché non vi è alcuna eccezione.

Come posso fare? Vorrei semplicemente salvare un file in una directory specifica.