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 :
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 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
<?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>
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
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>
Où se trouve l'erreur ? Je ne vois pas beaucoup de cohérence dans les erreurs signalées.

Merci d'avance de votre aide