import d ' entites dans un projet jsf
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:
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:
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:
1 2
| GRAVE: "Servlet.service()" pour la servlet Blocking Servlet a généré une exception
java.lang.ClassNotFoundException: entites.CompteAcheteur |
Merci bien