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 :

[JSF / Hibernate] Erreur lors de l'exécution d'une application


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut [JSF / Hibernate] Erreur lors de l'exécution d'une application
    Bonjour,
    J'essaye de débuter avec un tutohttp://jamacedo.wordpress.com/2010/0...2/#comment-232
    j'ai le problème suivant lors de l'exécution:
    javax.el.PropertyNotFoundException: /index.xhtml @67,99 action="#{livroController.prepararAdicionarLivro}": Target Unreachable, identifier 'livroController' resolved to null
    je vous fais une copie où se situe le problème. Prière de m'expliquer l'erreur que j'ai commise. Merci

    classe: LivroController
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String prepararAdicionarLivro(){
            livro = new Livro();
           return "gerenciarLivro";
        }
    index.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:form>
                <h:commandLink action="#{livroController.prepararAdicionarLivro}">
                    <h:outputText value="Next Page »" />
                </h:commandLink>
            </h:form>

    Je vous remercie d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Peut on voir ton faces-config? et le contenu complet de ton managedBean?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Peut on voir ton faces-config? et le contenu complet de ton managedBean?
    J'utilise Netbeans et JSF 2.0, et d'après ce que j'ai lu, pas besoin du fichier faces-config.xml

    Voici le code du JSF managed bean LivroController.java

    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
    55
    56
    57
    58
    59
    60
    61
    62
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Controller;
     
    import Dao.LivroDao;
    import Dao.LivroDaoImp;
    import Model.Livro;
    import java.util.List;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import javax.faces.model.DataModel;
    import javax.faces.model.ListDataModel;
     
    /**
     *
     * @author myself
     */
    @ManagedBean
    @RequestScoped
    public class LivroController {
     
        private Livro livro;
        private DataModel listaLivros;
     
        public DataModel getListarLivros() {
            List<Livro> lista = new LivroDaoImp().list();
            listaLivros = new ListDataModel(lista);
            return listaLivros;
        }
        public Livro getLivro() {
            return livro;
        }
        public void setLivro(Livro livro) {
            this.livro = livro;
        }
        public String prepararAdicionarLivro(){
            livro = new Livro();
           return "gerenciarLivro";
        }
        public String prepararAlterarLivro(){
            livro = (Livro)(listaLivros.getRowData());
            return "gerenciarLivro";
        }
        public String excluirLivro(){
            Livro livroTemp = (Livro)(listaLivros.getRowData());
            LivroDao dao = new LivroDaoImp();
            dao.remove(livroTemp);
            return "index";
        }
        public String adicionarLivro(){
            LivroDao dao = new LivroDaoImp();
            dao.save(livro);
            return "index";
        }
        public String alterarLivro(){
            LivroDao dao = new LivroDaoImp();
            dao.update(livro);
            return "index";
        }
    }
    je vous remercie

  4. #4
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Est ce que j'ai besoin d'un faces-config.xml? ou avec JSF 2.0 ça marche? je suis confuse

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par electronnne Voir le message
    Est ce que j'ai besoin d'un faces-config.xml? ou avec JSF 2.0 ça marche? je suis confuse
    En effet non, mais essaies un peu de mettre un nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @ManagedBean(name="livroController")
    @RequestScoped
    Et dis nous ce que ça donne

  6. #6
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Merci pour votre attention à mon sujet et votre réponse. J'ai inséré ce que vous m'avez demandé mais j'ai obtenu le même message d'erreur.
    Je ne peux pas voir l'erreur puisque je suis novice, et en plus c'est un tuto à suivre où on n'est pas censé avoir des problèmes :/
    Pas besoin que je mette mon code ici, il est le même et g la même arborescence dans mon projet.
    J'ai eu tout de même une petite question concernant le fichier de mapping que j'ai pas vu figurer dans le tuto. N'est il pas nécessaire dans une application où on utilise Hibernate?
    J'en ai créé 1 en le plaçant dans le package model où j'ai la classe relative à ma table, et j'ai effectué les modif nécessaires en me référant bien sur aux données des colonnes de cette table.
    Ca marche pas non plus.
    Je n'ai plus d'idées!
    Pourriez vous suggérer quelque chose qui puisse faire fonctionner ce truc? Je vous remercie

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Peux tu nous faire une capture d'ecran des librairies que t'utilises? J'éssaye de suivre ton tutoriel pour voir là où tu coinces.

  8. #8
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Images attachées Images attachées  

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,
    Je ne vois pas les librairies de JSF, je suppose que tu utilises les lib de GlassFich pour ce faire, peux tu également me les montrer en capture d'écran?

  10. #10
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Les librairies de JSF ne sont elles pas intégrées dans Netbeans?

    Je ne comprends pas pourquoi je ne vois pas votre commentaire à temps. je suis navrée que l'actualisation du site se fasse en retard

  11. #11
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut


    voici les lib de Glassfish
    Images attachées Images attachées  

  12. #12
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    J'ai effectué un chgmt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <h:outputLink value="gerenciarLivro.xhtml">
                    <h:outputText value="ok" />
                </h:outputLink>
    donc le programme a fonctionné. Etant donné que ma table est vide je n'ai pas eu un affichage du datatable. Seulement ce outputlink qui peut s'exécuter.
    En cliquant dessus je suis passée à l'autre vue, mais j'ai eu uniquement et affichage:

    Gerenciador de Livros

    Título
    Autor:
    Paginas:
    Editora:
    ISBN:
    Avaliação:

    en exécutant uniquement la première vue index.xhtml, g eu le même résultat et en cliquant sur OK j'ai obtenu la forme désirée (celle dessus+ les texboxes pour insérer des inputtext)

    J'ai rempli le formulaire et j'ai cliqué sor créer, et hop le même message d'erreur relatif à LivroController s'est affiché de nouveau!!!

    j'y comprends absolument rien haha

  13. #13
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    En me référant à cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.el.PropertyNotFoundException: /index.xhtml @67,99 action="#{livroController.prepararAdicionarLivro}": Target Unreachable, identifier 'livroController' resolved to null
    Je viens de suivre ton tutoriel, mais en ayant crée un projet maven, pour pas avoir à aller chercher les librairies nécessaires à la main, et j'ai mis dans mon index.xhtml le strict minimum pour juste voir que mon contrôleur était appelé et ça a bien marché. On va faire des tous petits tests suivants, mets ceci dans ton index.xhtml :
    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
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">
        <h:head>
            <title>Gerenciador de Livros</title>
        </h:head>
        <h:body>
            <h1>Gerenciador de Livros</h1>
     
            <br/>
            <h:outputText value="#{livroController.titreProjet}"/>
        </h:body>
    </html>
    Et dans ton controller tu déclares ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private String titreProjet="Livre En Location";
    ...
    public String getTitreProjet() {
    			return titreProjet;
    		}
    		public void setTitreProjet(String titreProjet) {
    			this.titreProjet = titreProjet;
    		}
    Tu relances et dis nous ce qu'affiche cette page.

  14. #14
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    tout le résultat que j'obtiens est :

    Gerenciador de Livros

  15. #15
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    As tu bien mis cette ligne coté xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{livroController.titreProjet}"/>
    et cette ligne coté controleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String titreProjet="Livre En Location";
    ? Ca doit au moins t'afficher le texte

  16. #16
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    j'ai inséré exactement ce que vous m'avez demandé et dans index.xhtml et dans LivroController.java

    la déclaration private String titreProjet="Livre En Location";
    puis les méthodes au corp de la classe

  17. #17
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Postes nous les codes ton controller et ta vue Xhtml au complet

  18. #18
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Controller;
     
    import Dao.LivroDao;
    import Dao.LivroDaoImp;
    import Model.Livro;
    import java.util.List;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import javax.faces.model.DataModel;
    import javax.faces.model.ListDataModel;
     
    /**
     *
     * @author myself
     */
    @ManagedBean(name="LivroController")
    @RequestScoped
    public class LivroController {
     
        private Livro livro;
        private DataModel listaLivros;
        private String titreProjet="Livre En Location";
     
        public DataModel getListarLivros() {
            List<Livro> lista = new LivroDaoImp().list();
            listaLivros = new ListDataModel(lista);
            return listaLivros;
        }
        public Livro getLivro() {
            return livro;
        }
        public void setLivro(Livro livro) {
            this.livro = livro;
        }
        public String prepararAdicionarLivro(){
            livro = new Livro();
           return "gerenciarLivro";
        }
        public String prepararAlterarLivro(){
            livro = (Livro)(listaLivros.getRowData());
            return "gerenciarLivro";
        }
        public String excluirLivro(){
            Livro livroTemp = (Livro)(listaLivros.getRowData());
            LivroDao dao = new LivroDaoImp();
            dao.remove(livroTemp);
            return "index";
        }
        public String adicionarLivro(){
            LivroDao dao = new LivroDaoImp();
            dao.save(livro);
            return "index";
        }
        public String alterarLivro(){
            LivroDao dao = new LivroDaoImp();
            dao.update(livro);
            return "index";
        }
        public String getTitreProjet() {
    	return titreProjet;
    		}
    public void setTitreProjet(String titreProjet) {
    	this.titreProjet = titreProjet;
    		}
    }

    index.xhtml après modification

    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
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">
       <h:head>
            <title>Gerenciador de Livros</title>
        </h:head>
        <h:body>
     
     
            <h1>Gerenciador del Livros</h1>
     
            <h:outputText value="#{livroController.titreProjet}"/>
     
        </h:body>
    </html>

  19. #19
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Par défaut
    Le problème dans tout ceci est simplement le @RequestScoped.
    J'ai mis @SessionScoped et ça a marché.

    je suis déçue d'avoir mis tout ce temps pour un simple tutoriel

    Je vous remercie cher DevServlet pour votre aide

  20. #20
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par electronnne Voir le message
    Le problème dans tout ceci est simplement le @RequestScoped.
    J'ai mis @SessionScoped et ça a marché.

    je suis déçue d'avoir mis tout ce temps pour un simple tutoriel

    Je vous remercie cher DevServlet pour votre aide
    Le problème est ailleurs, même si je ne sais où, chez moi ça marchait très bien avec la clause . Les 2 clauses ont chacune un rôle bien précis en fonction du besoin, le scope Session ne doit être utilisé que si tu veux conserver en mémoire des valeurs entre plusieurs invocations d'un managedBean. Si la solution te va ainsi tant mieux. J'ai moi même séché sur l'origine de la cause réelle du problème

Discussions similaires

  1. [XL-2003] Erreur lors de l'exécution d'une procédure
    Par pacocnec dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2009, 12h39
  2. Erreurs lors de l'exécution d'une procédure
    Par vanesa dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/01/2009, 17h48
  3. Erreur lors de l'exécution d'une requête avec ADOquery
    Par doolar dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2008, 13h26
  4. Erreur lors de l'exécution de l'application
    Par lazins dans le forum C#
    Réponses: 2
    Dernier message: 31/03/2008, 18h15
  5. [PostgreSQL] [PostGreSQL] Obtention d'une erreur lors de l'exécution d'une requête
    Par cbombabill dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2008, 11h56

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