Bonjour tout le monde,
je travaille avec hibernate 2 et jsf 1.2 et Oracle 10g sous eclipse europa. je suis bloquée ca fait 4 jours sur un probleme que j'ai avec jsf/hibernate,
donc, j'ai deux tables: programme et devises, dont voilà les fichier .hbm (générés par hibernate synchroniser ):
Programme.hbm
devises.hbm
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 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping package="com.projet.hibernate"> <class name="Programme" table="PROGRAMME" dynamic-update="true" dynamic-insert="true" select-before-update="false"> <id column="ID_PROGRAMME" name="IdProgramme" type="integer" > <generator class="increment" /> </id> <property column="DESCRIPTION_PROGRAMME" length="200" name="DescriptionProgramme" not-null="false" type="string" /> <property column="OBJET_PROGRAMME" length="200" name="ObjetProgramme" not-null="false" type="string" /> <property column="REGLEMENTATION_PROGRAMME" length="200" name="ReglementationProgramme" not-null="false" type="string" /> <property column="OBSERVATION_PROGRAMME" length="200" name="ObservationProgramme" not-null="false" type="string" /> <property column="MONTANT_PROGRAMME" length="126" name="MontantProgramme" not-null="false" type="java.lang.Float" /> <property column="DESIGNATION_PROGRAMME" length="200" name="DesignationProgramme" not-null="false" type="string" /> <many-to-one class="Devises" name="IdDevise" not-null="true" cascade="all" > <column name="ID_DEVISE" /> </many-to-one> </class> </hibernate-mapping>
et ma page jsf qui insere un nouveau programme dans la table programme (ges_programme_ajouter.jsp) est:
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 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping package="com.projet.hibernate"> <class name="Devises" table="DEVISES"> <id column="ID_DEVISE" name="IdDevise" type="integer" > <generator class="vm" /> </id> <property column="NOM_DEVISE" length="20" name="NomDevise" not-null="false" type="string" /> <property column="PAYS_DEVISE" length="20" name="PaysDevise" not-null="false" type="string" /> <property column="DATETAUXCHANGE_DEVISE" length="20" name="DatetauxchangeDevise" not-null="false" type="string" /> <property column="TAUXCHANGE_DEVISE" length="126" name="TauxchangeDevise" not-null="false" type="java.lang.Float" /> <set inverse="true" name="PROGRAMMESet" lazy="true" cascade="all" > <key column="ID_DEVISE" /> <one-to-many class="Programme" /> </set> </class> </hibernate-mapping>
les classes beans je les ai crée automatiquement à l'aide de hibernate synchronizer sous eclipse europa, auxequls j'ai ajouté les deux méthodes suivantes:
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 <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <f:view> <html> <head> <title>Gestion des programmes: Ajout</title> <link rel="stylesheet" href="extra.css" type="text/css"></link> <script language="JavaScript" src="JScripts.js"></script> </head> <body> <h:form> <table width="752" border="1" cellspacing="2" class="texte"> <tr> <td width="207">Désignation</td> <td colspan="2"><h:inputText id="designationProgramme" value="#{programme.designationProgramme}" /></td> </tr> <tr> <td>Objet</td> <td colspan="2"><h:inputTextarea id="objetProgramme" value="#{programme.objetProgramme}" /></td> </tr> <tr> <td>Description</td> <td colspan="2"><h:inputTextarea id="descriptionProgramme" value="#{programme.descriptionProgramme}" /></td> </tr> <tr> <td style="width: 192px">Observation</td> <td colspan="2"><h:inputTextarea id="observationProgramme" value="#{programme.observationProgramme}" /></td> </tr> <tr> <td >Montant</td> <td style="width: 291px"><h:inputText id="montantProgramme" value="#{programme.montantProgramme}" style="width: 113px"/> <h:selectOneMenu value="#{devises.idDevise}" > <f:selectItems id="idDevise" value="#{devises.listeDevises}"/> </h:selectOneMenu> </td> <td width="265" style="width: 133px"> </td> </tr> <tr> <td >Reglements</td> <td colspan="2"> <h:selectOneMenu value='#{programme.reglementationProgramme}' > <f:selectItem itemLabel="Directive BM" itemValue="Directive BM" /> <f:selectItem itemLabel="Reglementation internationnale" itemValue="Reglementation internationnale"/> </h:selectOneMenu> </td> </tr> <tr> <td align="center" height="58" colspan="3"> <h:commandButton value="Ajouter" action="#{programme.ValiderForm}" ></h:commandButton> <h:commandButton value="Annuler" ></h:commandButton> </td> </tr> </table> </h:form> </body> </html> </f:view>
dans Programme.java
FICHIER Devises.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 private List<Programme> ListeProgrammes=null; public void ValiderForm(){ Devises dvs=new Devises(); int IdDevise=dvs.getIdDevise(); System.out.println("IdDevise = "+IdDevise); int IdProgramme=new Integer(44);; String Designation=this.getDesignationProgramme(); String Objet=this.getObjetProgramme(); String Description=this.getDescriptionProgramme(); String Observation=this.getObservationProgramme(); Float Montant=this.getMontantProgramme(); Float MontantdirhamProgramme=this.getMontantdirhamProgramme(); String Reglementation=this.getReglementationProgramme(); System.out.println("IdProgramme = "+IdProgramme); System.out.println("Designation saisie = "+Designation); System.out.println("Objet saisi = "+Objet); System.out.println("Description saisi = "+Description); System.out.println("Observation saisi = "+Observation); System.out.println("Montant saisi = "+Montant); System.out.println("MontantdirhamProgramme saisi = "+MontantdirhamProgramme); System.out.println("Reglementation saisi = "+Reglementation); }
lors de l'execution du fichierr .jsf, je recois cette exception:
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 private List<SelectItem> ListeDevises=null; public Devises getDetailDevise(int IdDevises){ Devises ddvs=new Devises(); //lecture des comptes existants à partir de la table compte try { Session session = HibernateUtil.currentSession(); List list = session.find("from Devises where IdDevises="+IdDevises); ddvs = (Devises)list.get(0); HibernateUtil.closeSession(); } catch (HibernateException e) { e.printStackTrace(); } return ddvs; } public List<SelectItem> getListeDevises(){ //lecture des comptes existants à partir de la table compte try { Session session = HibernateUtil.currentSession(); List list = session.find("from Devises"); Iterator it = list.iterator(); ListeDevises= new ArrayList<SelectItem>(); while(it.hasNext()) { Devises dvs = (Devises)it.next(); System.out.println("IdDevise = "+dvs.getIdDevise()+" devise Nom= "+dvs.getNomDevise()); ListeDevises.add(new SelectItem(dvs.getIdDevise(),dvs.getNomDevise())); } HibernateUtil.closeSession(); } catch (HibernateException e) { e.printStackTrace(); } return ListeDevises; }
Merci de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 exception javax.servlet.ServletException: #{programme.ValiderForm}: java.lang.NullPointerException javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.16.
Partager