2010-10-18 4 views
0

J'ai une application Web dans Java SEAM2 qui s'exécute sur JBOSS.Java Create Directory Runtime WebApp

Dans mon application, j'essaie de créer des répertoires à la volée/exécution.

Eh bien, ce qui se passe, c'est que ces répertoires sont créés, mais quand j'essaye d'écrire un fichier dedans, il lance une exception de pointeur nul. Donc redémarré mon serveur et tout fonctionne bien alors, pourquoi est-ce?

if(ClassName.class.getClassLoader().getResource("roles/" + role) == null) 
     { 
      //create directory with role name 
      String rolePath = ClassName.class.getClassLoader().getResource("roles").getPath(); 
      rolePath = rolePath.substring(1, rolePath.length()); 
      rolePath = rolePath.replace("/", "\\"); 
      rolePath = rolePath + "\\" + role; 

      if(!(new File(rolePath).mkdir())) 
      { 
       this.addMessage(FacesMessage.SEVERITY_ERROR, "Error Creating Role Directory"); 
       return; 
      } 

     } 



     if(ClassName.class.getClassLoader().getResource("roles/" + role + "/" + app) == null) 
     { 
      String appPath = ClassName.class.getClassLoader().getResource("roles/" + role).getPath(); 
      appPath = appPath.substring(1, appPath.length()); 
      appPath = appPath.replace("/", "\\"); 
      appPath = appPath + "\\" + app; 

      File appFolder = new File(appPath); 
      if(!(appFolder.mkdir())) 
      { 
       this.addMessage(FacesMessage.SEVERITY_ERROR, "Error Creating Role Directory"); 
       return; 
      } 


     } 

Je pense que depuis que je suis en utilisant getClassLoader il ne reçoit pas mis à jour avec les nouveaux fichiers créés

+0

Peut-être que vous devriez publier un extrait de code pertinent. – Raghuram

Répondre

1

Il est une mauvaise idée de créer une base de dossier un chemin de ressource de chargeur de classe (vous jamais où est le srouce/dossier de) meilleure façon sont, utilisez le dossier java.io.temp, ou utiliser une configuration pour savoir obtenir le dossier du référentiel dans votre système.

Questions connexes