Errore FileNotFoundException quando crea file su server

Forum di discussione sul linguaggio Java e JSP

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
robyn78
Utente Junior
Messaggi: 26
Iscritto il: 05 nov 2017, 22:53

Errore FileNotFoundException quando crea file su server

Messaggioda robyn78 » 15 apr 2018, 11:35

Salve a tutti ho un piccolo problema :shock:
ho creato una web app che crea un file pdf su server e tramite una servlet direziona il browser del client su quel file ora in locale funziona tutto bene crea il file e lo apre con il browser. appena carico sul server mi da il seguente errore:
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\com.falzone\file\privacy31.pdf (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at gestionale.Privacy.stampaPrivacy(Privacy.java:82)
at gestionale.Sutenti.doPost(Sutenti.java:178)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

questa è la parte del codice secondo me incriminato

Codice: Seleziona tutto

public static void stampaPrivacy (String nome, String cognome, String cf, String città, String indirizzo, String id) { try {
      
      System.out.println(System.getenv("CATALINA_HOME")+ "/webapps/com.falzone/file/privacy" +id+".pdf");
      OutputStream file = new FileOutputStream(new File(System.getenv("CATALINA_HOME")   + "/webapps/com.falzone/file/privacy" +id+".pdf"));
      
      
         

cosa sbaglio mannagia qualcuno può aiutarmi GRAZIE
oregon
Utente Senior
Messaggi: 10843
Iscritto il: 20 nov 2011, 18:54

Re: Errore FileNotFoundException quando crea file su server

Messaggioda oregon » 15 apr 2018, 12:09

Ma il file

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\com.falzone\file\privacy31.pdf

esiste sul server?
___________________
"Il gioco del Lotto : la tassa sull'imbecillità". (Bruno De Finetti, grande matematico italiano)
Avatar utente
andbin
Utente Senior
Messaggi: 3416
Iscritto il: 30 ott 2013, 21:51

Re: Errore FileNotFoundException quando crea file su server

Messaggioda andbin » 15 apr 2018, 13:11

robyn78 ha scritto:

Codice: Seleziona tutto

   
      System.out.println(System.getenv("CATALINA_HOME")+ "/webapps/com.falzone/file/privacy" +id+".pdf");
      OutputStream file = new FileOutputStream(new File(System.getenv("CATALINA_HOME")   + "/webapps/com.falzone/file/privacy" +id+".pdf"));

E se la directory "file" non esiste ancora? (do abbastanza per scontato che la webapps e com.falzone ci siano)
Questo è uno dei motivi per il FileNotFoundException.

Un po' meglio sarebbe stato:

Codice: Seleziona tutto

File dir = new File(System.getenv("CATALINA_HOME"), "webapps/com.falzone/file");
dir.mkdirs();    // sarebbe bene anche testare il boolean restituito da mkdirs
File file = new File(dir, "privacy"+id+".pdf");

OutputStream file = new FileOutputStream(file);
Andrea, www.andbin.net — Senior Java developer — SCJP 5 (91%) – SCWCD 5 (94%)
Il mio blog sulla programmazione
robyn78
Utente Junior
Messaggi: 26
Iscritto il: 05 nov 2017, 22:53

Re: Errore FileNotFoundException quando crea file su server

Messaggioda robyn78 » 15 apr 2018, 14:42

oregon ha scritto:Ma il file

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\com.falzone\file\privacy31.pdf

esiste sul server?

Il file all’inizio non c’è, viene creato in quella posizione ma non trova forse la directory dove crearlo
robyn78
Utente Junior
Messaggi: 26
Iscritto il: 05 nov 2017, 22:53

Re: Errore FileNotFoundException quando crea file su server

Messaggioda robyn78 » 15 apr 2018, 16:10

andbin ha scritto:
robyn78 ha scritto:

Codice: Seleziona tutto

   
      System.out.println(System.getenv("CATALINA_HOME")+ "/webapps/com.falzone/file/privacy" +id+".pdf");
      OutputStream file = new FileOutputStream(new File(System.getenv("CATALINA_HOME")   + "/webapps/com.falzone/file/privacy" +id+".pdf"));

E se la directory "file" non esiste ancora? (do abbastanza per scontato che la webapps e com.falzone ci siano)
Questo è uno dei motivi per il FileNotFoundException.

Un po' meglio sarebbe stato:

Codice: Seleziona tutto

File dir = new File(System.getenv("CATALINA_HOME"), "webapps/com.falzone/file");
dir.mkdirs();    // sarebbe bene anche testare il boolean restituito da mkdirs
File file = new File(dir, "privacy"+id+".pdf");

OutputStream file = new FileOutputStream(file);

Ciao Grazie per avermi risposto cosi velocemente ho provato creando la cartella ma nulla da sempre lo stesso errore anzi mi sono accorto che non crea nemmeno la cartella. Secondo te a cosa è dovuto possibile alla mancanza di permessi?
Avatar utente
andbin
Utente Senior
Messaggi: 3416
Iscritto il: 30 ott 2013, 21:51

Re: Errore FileNotFoundException quando crea file su server

Messaggioda andbin » 15 apr 2018, 16:15

robyn78 ha scritto:possibile alla mancanza di permessi?

Sì è possibile che siano questioni di "permessi". Ma devi avere accesso al file-system del server per valutare ed eventualmente agire.
Andrea, www.andbin.net — Senior Java developer — SCJP 5 (91%) – SCWCD 5 (94%)
Il mio blog sulla programmazione
robyn78
Utente Junior
Messaggi: 26
Iscritto il: 05 nov 2017, 22:53

Re: Errore FileNotFoundException quando crea file su server

Messaggioda robyn78 » 15 apr 2018, 16:36

andbin ha scritto:
robyn78 ha scritto:possibile alla mancanza di permessi?

Sì è possibile che siano questioni di "permessi". Ma devi avere accesso al file-system del server per valutare ed eventualmente agire.

il mio dubbio è che riesco a creare la cartella con l'ftp, ma non da segni di errore quando non riesce a creare la cartella tramite java sto impazzendo qualche altro suggerimento

Torna a “Java”

Chi c’è in linea

Visitano il forum: andbin e 57 ospiti