Ciao, per prima cosa che mi risulti un war viene decompresso in una cartella nel momento stesso in cui viene fatto il deploy del war sul Container (Tomcat ad esempio), quindi a runtime la lettura non avviene dal war ma dalla directory che è risultata dalla sua decompressione.Originariamente inviato da Verce
Ho un problema:
devo leggere il contenuto di una directory in un .war a runtime.
Ho provato senza risultato i seguenti metodi:
ecodice:final String webInfClassesPath = http.getServletContext().getRealPath("/WEB-INF/classes/"); final File fp = new File(webInfClassesPath);
capisce dov'è la directory, mi torna il percorso ma non riesce a farci un oggetto di tipo file...codice:final URL resource = http.getServletContext().getResource("/WEB-INF/classes/"); final URI uri = resource.toURI(); final File f4= new File(uri);
In internete ci sono tutorial per leggere lo stream, ma io non volgio leggere l contenuto del file, voglio avere una lista dei file presenti nella cartella..
Qualche idea??
In secondo luogo , un war (e la cartella risultante) è , dal punto di vista logico, il binario di un'applicazione ed è fatto per rimanere immutato (nel numero e contenuto di file e directory) dal momento del deploy in poi, se hai bisogno di lavorare con una cartella in cui devi creare o cancellare o modificare files, è opportuno che il suo percorso sia esterno alla web application. Questo per dire che , dato che il contenuto di una directory dentro la webapp dovrebbe restare immutato, tale contenuto lo conosci a priori già a compile time e lo puoi quindi inserire in una file di configurazione, ammesso che le considerazioni sopra non ti abbiano portato a riflettere e non stia già pensando di lavorare su una directory esterna senza complicarti la vita.