[struts][tomcat] chemin et fichiers inaccessibles.

Discussions sur le développement de JSP, servlets, et Java en général.

Modérateur : Modérateurs

Avatar de l’utilisateur
nikalkal
Nouveau membre
Messages : 2
Inscription : jeu. 04 mai 2006, 9:57

Messagepar nikalkal » jeu. 04 mai 2006, 10:01

Bonjour,

j'ai un petit problème, j'ai un formulaire où j'upload des fichiers vers des répertoires de mon projet.
J'ai ensuite un page ou je peux cliquer sur un lien qui m'ouvre ces fichiers.

Mon problème est que certains fichiers s'ouvrent et pas d'autres alors que le chemin est le bon (ce sont tous des fichiers pdf). Et il faut que je redémarre tomcat pour arriver à en lire certains.

Ex : un lien vers <a href='http://localhost:8080/gestentrep2/factures/3/spring-reference.pdf' target='_blank'>http://localhost:8080/gestentrep2/factures...g-reference.pdf</a> ça marche.
Et un autre vers <a href='http://localhost:8080/gestentrep2/factures/23/hibernate_reference.pdf' target='_blank'>http://localhost:8080/gestentrep2/factures...e_reference.pdf</a> ça ne marche pas (La ressource demandée (/gestentrep2/factures/23/hibernate_reference.pdf) n'est pas disponible.)
Alors que le chemin est le bon et le fichier existe à cet emplacement sur mon disque.

Voiçi pour info mon code d'upload de fichier :

Code : Tout sélectionner

            File directory = new File(Constantes.FACTURES_PATH + factureId + Constantes.FILE_SEPARATOR);
            directory.mkdirs();
            File theFile = new File(directory + "\\" +file.getFileName());
            try {
                FileOutputStream fos = new FileOutputStream(theFile);
                fos.write(file.getFileData());
                fos.close();
            } catch (IOException ioe) {ioe.getMessage();}


Peut-être cela vient du fait que mon répertoire factures n'est pas dans WEB-INF..? mais j'en doute.

Faut-il donner des droits d'accès à un répertoire dans tomcat où sont-ils par défaut tous visible depuis la racine du projet déployé?

Merci d'avance pour votre aide, @bientot.

Avatar de l’utilisateur
jidjo
Nouveau membre
Messages : 9
Inscription : lun. 22 mai 2006, 12:54

Messagepar jidjo » lun. 22 mai 2006, 13:06

Déja qq petits commentaires sur ton code:

Lors d'un exception préfère ex.printStackTrace(), plutôt que ex.getMessage(). Du coup avec ton code tu ne vois pas l'exception réelle !!!!

Le mieux étant l'utilisation de Log4J.

Ensuite qd tu fais des ouvertures de flux / fichiers pense à mettre un finally pour closer tout tes flux / fichiers.

Au bout de combien de fichiers cela arrive t-il ?
C'est peu être du un un problème de non fermeture ?

Code : Tout sélectionner

File f = null;
FileOutputStream fos = null;
try {

}
catch(Exception ex) {
}
finally {
  if (fos != null) {
    fos.close();
  }
  if (f != null) {
    f.close();
  }  
}


Revenir vers « Java »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité