Bonjour à tous,
Je suis en train de suivre un tuto sur JSF qui propose de créer un formulaire d'inscription, avec un serveur Glassfish. Mais lorsque je soumets le formulaire avec le bouton "inscription", j'ai le message d'erreur suivant :
/Inscription.xhtml @13,119 value="#{inscrireBean.utilisateur.email}": Target Unreachable, identifier 'inscrireBean' resolved to null
De plus, dans mon backing Bean "InscrireBean", à la déclaration de ma classe (public class InscrireBean implements Serializable{), j'ai une grosse croix rouge qui m'indique : "Class "beans.InscrireBean" is listed in the persistence.xml file, but is not annotated".
Voici ma classe InscrireBean :
et voici mon fichier persistence.xml, qui se trouve dans le dossier META-INF :
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 package beans; import java.io.Serializable; import java.sql.Timestamp; import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import dao.UtilisateurDao; import entities.Utilisateur; @ManagedBean(name = "inscrireBean") @RequestScoped public class InscrireBean implements Serializable { private static final long serialVersionUID = 1L; private Utilisateur utilisateur; // Injection de notre EJB (Session Bean Stateless) @EJB private UtilisateurDao utilisateurDao; // Initialisation de l'entité utilisateur public InscrireBean() { utilisateur = new Utilisateur(); } // Méthode d'action appelée lors du clic sur le bouton du formulaire // d'inscription public void inscrire() { initialiserDateInscription(); utilisateurDao.creer( utilisateur ); FacesMessage message = new FacesMessage( "Succès de l'inscription !" ); FacesContext.getCurrentInstance().addMessage( null, message ); } public Utilisateur getUtilisateur() { return utilisateur; } private void initialiserDateInscription() { Timestamp date = new Timestamp( System.currentTimeMillis() ); utilisateur.setDateInscription( date ); } }
Et mon fichier faces-config.xml, qui se trouve dans WebContent (je ne sais pas s'il ne faut pas le mettre dans WEB-INF/ ?) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="bdd_sdzee_PU" transaction-type="JTA"> <jta-data-source>jdbc/bonecp_resource</jta-data-source> <class>entities.Utilisateur</class> <class>beans.InscrireBean</class> <properties> <property name="eclipselink.logging.level.sql" value="FINE"/> <property name="eclipselink.logging.parameters" value="true"/> </properties> </persistence-unit> </persistence>
Où se trouve l'erreur ? Je ne vois pas beaucoup de cohérence dans les erreurs signalées.
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 <?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" version="2.2"> <managed-bean> <managed-bean-name>inscrireBean</managed-bean-name> <managed-bean-class>beans.InscrireBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>
Merci d'avance de votre aide
Partager