Errore FileNotFoundException quando crea file su server

di il
6 risposte

Errore FileNotFoundException quando crea file su server

Salve a tutti ho un piccolo problema
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

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

6 Risposte

  • Re: Errore FileNotFoundException quando crea file su server

    Ma il file

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

    esiste sul server?
  • Re: Errore FileNotFoundException quando crea file su server

    robyn78 ha scritto:


    	
    		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:
    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);
  • Re: Errore FileNotFoundException quando crea file su server

    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
  • Re: Errore FileNotFoundException quando crea file su server

    andbin ha scritto:


    robyn78 ha scritto:


    	
    		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:
    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?
  • Re: Errore FileNotFoundException quando crea file su server

    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.
  • Re: Errore FileNotFoundException quando crea file su server

    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
Devi accedere o registrarti per scrivere nel forum
6 risposte