IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

javax.servlet.ServletException: Unable to create managed bean Files


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Par défaut javax.servlet.ServletException: Unable to create managed bean Files
    Bonjour tous le monde
    j'utilise Jboss4.2.3GA comme conteneur web et je travail avec le framework JSF ;
    dans le contexte du mon application nommée xmiep3 j'ai crée un arboressence du répétoire et j'ai creé un bean: FileBean qui sert a récuperer les fichiers existant dans cette arboressence:
    mon File beans et le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    public class FileBean {
        private List ProcessedFile;
        private List UnprocessedFile;
     
        public FileBean() {
        }
     
        public List getProcessedFile(){
            if(ProcessedFile==null){
                ProcessedFile =new ArrayList();
                File rep = new File("/Files/BackupDirectory/processed/");
                String[] listfich =rep.list();
                if(listfich.length!=0){
                   for(int i = 0 ; i < listfich.length ; i++){
                      ProcessedFile.add(listfich[i]);                
                   }            
               }
            }
            return ProcessedFile;
        }
        public List getUnprocessedFile(){
            if(UnprocessedFile==null){
                UnprocessedFile =new ArrayList();
                File rep = new File("/Files/BackupDirectory/unprocessed/");
                String[] listfich =rep.list();
                if(listfich.length!=0){
                   for(int i = 0 ; i < listfich.length ; i++){
                      UnprocessedFile.add(listfich[i]);                
                   }            
               }
            }
            return UnprocessedFile;
        }
     
        public void setProcessedFile(List ProcessedFile) {
            this.ProcessedFile = ProcessedFile;
        }
     
        public void setUnprocessedFile(List UnprocessedFile) {
            this.UnprocessedFile = UnprocessedFile;
        }
     
    }
    j'ai déclarer mon Beans dans face-config comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <managed-bean>
            <managed-bean-name>Files</managed-bean-name>
            <managed-bean-class>xmiep3.bean.FileBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>ProcessedFile</property-name>
                <null-value/>
            </managed-property>
            <managed-property>
                <property-name>UnprocessedFile</property-name>
                <null-value/>
            </managed-property>
        </managed-bean>
    ensuite je veux afficher le contenu du l'arboressence dan une page jsf sous forme d'un DataTable et en voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     <html:dataTable headerClass="headers" width="100%" value="#{Files}"   rowClasses="ligne1,ligne2" >                   
                      <html:column>
                        <core:facet name="header" >
                          <html:outputText value="Nom du fichier"/>    
                        </core:facet>
                        <html:outputText value="#{Files.getFileProcessed}" />
                      </html:column> 
                    </html:dataTable>
                     <html:outputLabel id = "lab5" value=" fichiers xml non traités: "/>  
                    <html:dataTable headerClass="headers" width="100%" value="unprocessed" var="unproc" columnClasses="ligne1,ligne2" >                   
                      <html:column>
                        <core:facet name="header" >
                          <html:outputText value="Nom du fichier "/>    
                        </core:facet>
                        <html:outputText value="#{Files.getFileUnprocessed}" />
                      </html:column> 
                    </html:dataTable>
    lorsque je lance mon application j'obtien l'exception suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean Files.  The following problems were found:
         - Property ProcessedFile for managed bean Files does not exist.
         - Property UnprocessedFile for managed bean Files does not exist
    ......
    mais j'ai déclarer les proprièté de mon beans
    merci pour votre aide

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    primo: tu n'est pas obligé de définir les properties, la définition du bean suffit, c'est EL qui trouve la property du bean.

    Secondo: il ne faut mettre le traitement dans un getter, il est appelé plusieurs fois dans le cyle de la requete JSF.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Par défaut
    Bonjour , merci sniper37 pour ta réponse assez vite ,
    oui effectivement pour le premier point je suis d'acord, j'ai éléminer la déclaration des propriètées dans face-config
    mais pour le deuxieme point ou je dois mettre mon traitement :c'est dans le corps du constructeur ou d'une autre méthode ??
    dans mapage j'ai commis une erreur lors de l'invocation de mon beans
    c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <html:outputText value="#{Files.ProcessedFile}" />
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <html:outputText value="#{Files.UnprocessedFile}" />
    au lieu du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <html:outputText value="#{Files.getFileProcessed}" />
    <html:outputText value="#{Files.getFileUnprocessed}" />
    est ce que vous pouvez m'indiquer la source du l'exception
    merci encore

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    les propriété javabeans commencent par une minuscule, pas un majuscule, ton faces-config deviens donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <managed-bean>
            <managed-bean-name>Files</managed-bean-name>
            <managed-bean-class>xmiep3.bean.FileBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>processedFile</property-name>
                <null-value/>
            </managed-property>
            <managed-property>
                <property-name>unprocessedFile</property-name>
                <null-value/>
            </managed-property>
        </managed-bean>
    et ton xhtml deviens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <html:outputText value="#{Files.processedFile}" />
    Quand à ton code dans le getter, c'est tout a fait correct comme tu le fait et c'est d'ailleurs la méthode recommandé pour faire une initialisation tardive de certaines propriétés.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Par défaut
    merci tchez pour ton aide
    j'ai tester mon application avec l'exemple suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public class FileBean {
        private List processedFile;
        private List unprocessedFile;
     
        public FileBean() {
        }
     
     
        public List getprocessedFile() {
            if(processedFile==null){
                processedFile =new ArrayList();
               /* File rep = new File("/Files/BackupDirectory/processed/");
                String[] listfich =rep.list();
                if(listfich.length!=0){
                   for(int i = 0 ; i < listfich.length ; i++){
                      processedFile.add(listfich[i]);                
                   }            
               }*/
                String a="chaine1";
                String b="chaine2";
                processedFile.add(a);
                processedFile.add(b);
            }
            return processedFile;
        }
     
        public List getunprocessedFile() {
            if(unprocessedFile==null){
                unprocessedFile =new ArrayList();
               /* File rep = new File("/Files/BackupDirectory/unprocessed/");
                String[] listfich =rep.list();
                if(listfich.length!=0){
                   for(int i = 0 ; i < listfich.length ; i++){
                      unprocessedFile.add(listfich[i]);                
                   }            
               }*/
                 String c="chaine1";
                String d="chaine2";
                unprocessedFile.add(c);
                unprocessedFile.add(d);
            }
            return unprocessedFile;
        }
     
        public void setprocessedFile(List processedFile) {
            this.processedFile = processedFile;
        }
     
        public void setunprocessedFile(List unprocessedFile) {
            this.unprocessedFile = unprocessedFile;
        }
     
    }
    mais dans ma page j'obiens pas chaque chaine sur une seule ligne , j'obtien le couple [chaine1,chaine2] sur la meme colone
    merci

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu veux parcourir la liste, il faut utilise des tags comme h:dataTable.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/11/2011, 15h53
  2. Réponses: 2
    Dernier message: 09/09/2008, 14h24
  3. struts erreur javax.servlet.ServletException
    Par catherine* dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/08/2007, 08h50
  4. Réponses: 7
    Dernier message: 19/07/2006, 14h43
  5. [SERVLET]javax.servlet.ServletException
    Par Devil666 dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 10/06/2005, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo