|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2007
Messaggi: 677
|
[Java - Tomcat] Permessi di lettura.
Salve,
dopo la domanda inutile dell'altro giorno ho un altro problema che non risco assolutamente a risolvere. Uso una funzione ricorsiva per reperire tutti i files contenuti in una cartella e le sue sottocartelle, fin qui nessun problema infatti mi funziona tutto con eclipse ed il server fornito dal plugin di GWT, ma se provo a fare deploy sul server dell'università ( http://ltw1008.cs.unibo.it/ ) ho un problema di permessi, nonostante i files siano dentro lo spazio della webApp. Secondo voi è un problema coi permessi reale o c'è un sistema per aggirarlo? Inoltre ho provato ad usare un server in locale scaricandomi Apache Tomcat e facendo la deploy nella sua cartela /webapp/phantom/ ed in questo caso mi restituisce "jndi:/localhost/phantom/xml" dove phantom è il nome della webapp. Ecco il codice che uso: Codice:
public class DocListServer
extends RemoteServiceServlet
implements DocManager {
private static final long serialVersionUID = -6025311575129578843L;
/**
* URL assoluto del root folder della web-app
*/
public static URL absol_ROOT_Url;
private static FileFilter filter;
private static ArrayList<TeiDoc> docList;
private static HashMap<String, String> docTextCache;
public DocListServer(){
super();
initVars();
}
private void initVars(){
filter = new FileFilter(".xml");
docList = new ArrayList<TeiDoc>();
docTextCache = new HashMap<String, String>();
}
public ArrayList<TeiDoc> getDocInfo() {
return docList;
}
public Boolean scanDirMain() {
if(docList.isEmpty()){
try {
absol_ROOT_Url = new URL("file://");
absol_ROOT_Url = getServletContext().getResource("/");
scanDir(new URL(absol_ROOT_Url.toString().concat("xml")));
} catch (MalformedURLException mue) {
mue.printStackTrace();
return false;
} catch (AccessControlException ace){
System.out.println("Permesso di lettura negato");
return false;
}
}
return true;
}
/**
* this method lists recursively a folder and saves the file list with the associated URI list
* in the <i>files</i> field
*
* @param path the directory URI to scan
* @throws MalformedURLException
*/
private static void scanDir(URL path) throws MalformedURLException, AccessControlException{
File[] content = new File[0];
File dir = new File(path.getFile());
if((content = dir.listFiles(filter)) != null){
for (File thisFile:content){
//System.out.println("Content["+i+"] of path "+path+":\n\t"+content[i].toString()+"\n"); // DEBUG
if(thisFile.isFile())
docList.add( XMLDocManager.getInfo(thisFile.getAbsolutePath(), thisFile.getName()) );
else
scanDir(new URL("file://" + thisFile.getAbsolutePath()));
}// END for file list
} // EndIf content != null
else
System.out.println("{content == null} La cartella seguente è vuota: " + path);
}
}
Codice:
public class FileFilter implements FilenameFilter {
protected String pattern;
/**
* Sets the file extension's filter
* @param str the file extension
*/
public FileFilter(String str) {
pattern = str.toLowerCase();
}
public boolean accept (File dir, String name) {
//System.out.println("Dir> "+dir.toString()+"\nFile> "+name); //DEBUG
return (name.toLowerCase().endsWith(pattern) |
new File(dir+"/"+name).isDirectory());
}
}
Grazie per l'aiuto. EDIT: Ho sistemato le stringhe che facevano riferimento a costanti e non si capiva bene il codice.
__________________
Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD.. Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram.. Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR "Mobile": iPhone 5 64Gb MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80 Ultima modifica di jj.69kt : 15-07-2010 alle 14:57. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Messaggi: 677
|
Nessun'idea?
__________________
Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD.. Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram.. Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR "Mobile": iPhone 5 64Gb MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2007
Messaggi: 677
|
Nessun'idea? o nessuno che guarda il thread? XD
__________________
Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD.. Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram.. Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR "Mobile": iPhone 5 64Gb MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Devi essere un po' piu' preciso, cosa vuol dire "ho un problema di permessi"?
e "mi restituisce jndi:..."? chi restituisce?
__________________
|Java Base| |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2007
Messaggi: 677
|
Si, scusa in effetti i dati potrebbero essere di più.
Il problema di permessi l'ho verificato su un server dell'università mentre n locale mi si resenta il problema della "cartella vuota".. In pratica ho un controllo ce se la cartella è vuota stampa nello standard output il nome della cartella he risulta vuota, e questo controllo mi restituisce per l'appunto "jndi:/localhost/phantom/xml" quando cerco di leggere la cartella /xml/ che dovrebbe essere nella root della mia webapp. Purtroppo ho usato Eclipse ed il plugin di GWT per creare il progetto e pare che questo plugin non usi Tomcat come server per cui il codice che funziona su Eclipse non funziona sempre su Tomcat.. Come è successo appunto adesso con la lettura della cartella.. Ho sentito voci che non è possibile leggere un file su Tomcat se no utilizzando uno StreamInput (per esempio FileStreamInput), è vero? Ed in tal caso, come faccio a riconoscere se si tratta di un file o di una cartella? Perché il mio obbiettivo è quello di avere una lista di files (con le relativa path) contenuti in una cartella e le sue sottocartelle.
__________________
Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD.. Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram.. Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR "Mobile": iPhone 5 64Gb MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2007
Messaggi: 677
|
Non sono stato sufficientemente esplicativo?
__________________
Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD.. Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram.. Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR "Mobile": iPhone 5 64Gb MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:33.











|








