Bonsoir,

Dans le cadre d ' un projet , je dois manipuler jsf , ejb et jpa avec pour consignes de créer un projet différent pour chaque technologie.

J ' ai donc créer un ear qui contient mon projet ejb ,mes entités définies dans un projet jpa et le projet jsf pour l ' interface web.

J ' ai réussi a implémenter tout ca , mais je bloque dans l ' appel des entités contenues dans le projet jpa pour le projet jsf.

J ' importe bien le projet jpa dans le classPath du projet Jsf où j ' ai créer une classe controleur me permettant de manipuler mes entités.

Ça fonctionne bien sous Eclipse( mon projet jsf reconnait bien mes entités), mais une fois lancé sur le serveur(Tomcat) , je me tape un joli java.lang.ClassNotFoundException car il ne reconnait pas l ' entité que je manipule dans les pages jsf ( l ' entité est bien déclaré dans le faces config)

Comment contourner ce problème svp ?

Classe controleur qui manipule l ' entité
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package com.dev.controleurCompte;
 
 
import java.util.List;
 
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
 
 
 
import com.dev.daoCompte.Compte;
 
import entites.CompteAcheteur; // import de l ' entité contenue dans mon projet jpa
 
 
 
public class CompteControleur {
 
    private DataModel listeCompte;
 
    private CompteAcheteur nouveauCompte=new CompteAcheteur();
    private CompteAcheteur editerCompte;
    private CompteAcheteur rechercheCompte=new CompteAcheteur();
    private Compte ejb= new Compte();
 
 
 
    public String creerCompte() {
 
            ejb.creerCompte(nouveauCompte);
            nouveauCompte = new CompteAcheteur();
            listeCompte.setWrappedData(ejb.listeCompte());
 
            return "consulterComptes";
    }
 
    public String compteAEditer() {
        editerCompte = (CompteAcheteur) listeCompte.getRowData();
        return "editerUser";
    }
 
    public String modifierCompte() {
        ejb.modifierCompte(editerCompte);
        listeCompte.setWrappedData(ejb.listeCompte());
        return "consulterComptes";
    }
 
    public String supprimerCompte() {
        CompteAcheteur  compte = (CompteAcheteur) listeCompte.getRowData();
        ejb.supprimerCompte(compte);
        listeCompte.setWrappedData(ejb.listeCompte());
        return null;
    }
 
 
    public String rechercherCompte()
    {
        rechercheCompte=ejb.chercherCompte(rechercheCompte.getCode());
        return "infosCompte";
    }
 
    public DataModel getListeCompte() {
        if (listeCompte == null) {
            listeCompte = new ListDataModel();
            listeCompte.setWrappedData(ejb.listeCompte());
        }
        return listeCompte;
    }
 
    public CompteAcheteur getNouveauCompte() {
        return nouveauCompte;
    }
 
    public void setNouveauCompte(CompteAcheteur nouveauCompte) {
        this.nouveauCompte = nouveauCompte;
    }
 
    public CompteAcheteur getEditerCompte() {
        return editerCompte;
    }
 
    public void setEditerCompte(CompteAcheteur editerCompte) {
        this.editerCompte = editerCompte;
    }
 
    public CompteAcheteur getRechercheCompte() {
        return rechercheCompte;
    }
 
    public void setRechercheCompte(CompteAcheteur rechercheCompte) {
        this.rechercheCompte = rechercheCompte;
    }
 
    public void setListeCompte(DataModel listeCompte) {
        this.listeCompte = listeCompte;
    }
 
 
 
}
extrait de la page jsf qui utilise l ' entité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  <ice:outputText value="Id" />
            <ice:inputText id="id" value="#{controleurCompte.nouveauCompte.code}"   />
            <ice:message for="id" tooltip="true" showDetail="true" showSummary="true" rendered="true"/>
l ' erreur retournée est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
GRAVE: "Servlet.service()" pour la servlet Blocking Servlet a généré une exception
java.lang.ClassNotFoundException: entites.CompteAcheteur
Merci bien