J'essaie d'obtenir une liste de dossiers à partir du répertoire racine de mon projet JSP, puis de les afficher à l'utilisateur dans une table, avec des liens vers des dossiers enfants et la taille du dossier. Le code ci-dessous permet d'obtenir une liste de répertoires dans le dossier WebContent.Pourquoi est-ce que je reçois un pointeur null lors de l'accès aux fichiers sur Tomcat (à l'aide de HttpServlet)?
String absolutePath = this.getServletContext().getRealPath("/") + relativePath;
String fileList = "<tr><th>File Name</th><th>Size [B]</th><th>Last Updated</th></tr>";
File folder = new File(absolutePath);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isDirectory()) {
Path file = listOfFiles[i].toPath();
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
String time = attr.lastAccessTime().toString();
fileList += "<tr><td><img width='15px' alt='**' src='assets\\images\\folder.png'/> "
+ "<button onclick='navigate(this);'>" + listOfFiles[i].getName() + "</button></td><td>" + attr.size() + "</td><td>"
+ time.replace("T", " ").substring(0, time.indexOf("."))
+ "</td></tr>";
}
}
Lorsque je lance le projet localement, il n'y a pas de problème. Mais après avoir déployé mon fichier .war sur un serveur, lors de l'exécution, je reçois une erreur 500 (exception de pointeur null) à la ligne:
for (int i = 0; i < listOfFiles.length; i++)
Ce qui me dit que le tableau de dossier n'a pas été initialisé avec les dossiers enfants. Je suppose que je n'ai pas le même accès à ces dossiers sur le serveur que je le fais quand je cours localement.
Des idées pour accéder à ces dossiers? P.S. Le serveur fonctionne sous Unix.
Je voudrais enregistrer la valeur "absoultepath" et voir les systèmes de fichiers du serveur a un dossier avec le chemin exact. Vous savez quel est le problème, donc déboguer et voir. – kosa