Probleme d'ajout d'un nouveau enregistrement avec jsf1.2/hibernate2

lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008 - 26 mai 2008 à 01:45
cs_delivrance84 Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 15 octobre 2009 - 20 juil. 2008 à 15:14
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

<?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">
  
   <generator class="increment" />
  
  
  
  
  
  
  


  <many-to-one
   class="Devises"
   name="IdDevise"
   not-null="true"
   cascade="all"
  >
   <column name="ID_DEVISE"  />
  </many-to-one>
  
 </class>
</hibernate-mapping>




devises.hbm



<?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">
  
   <generator class="vm" />
  
  
  
  
  


  <set inverse="true" name="PROGRAMMESet"  lazy="true" cascade="all" >
   <key column="ID_DEVISE"  />
   <one-to-many class="Programme" />
  </set>
 </class>
</hibernate-mapping>







et ma page jsf qui insere un nouveau programme dans la table programme ( ges_programme_ajouter.jsp ) est:


<[mailto:%@taglib %@taglib] uri ="http://java.sun.com/jsf/core" prefix= "f" %>
<[mailto:%@taglib %@taglib] uri="http://java.sun.com/jsf/html" prefix="h" %>
<[mailto:%@taglib %@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>
        
            <h:form> 
                          ----

                D&amp;eacute;signation,
                <h:inputText id="designationProgramme" value="#{programme.designationProgramme}" />,
             
              ----

                Objet,
                <h:inputTextarea id="objetProgramme" value="#{programme.objetProgramme}" />,
             
              ----

                Description,
                <h:inputTextarea id="descriptionProgramme" value="#{programme.descriptionProgramme}" />,
             
              ----

                Observation,
                <h:inputTextarea id="observationProgramme" value="#{programme.observationProgramme}" />,
             
               ----

                Montant,
                <h:inputText id="montantProgramme" value="#{programme.montantProgramme}" style="width: 113px"/>
     
     <h:selectOneMenu value="#{devises.idDevise}" >
         <f:selectItems id="idDevise" value="#{devises.listeDevises}"/>
       </h:selectOneMenu>
     
    ,
                ,
             
               ----

                Reglements,
                                <h:selectOneMenu value='#{programme.reglementationProgramme}' >
                <f:selectItem itemLabel="Directive BM" itemValue="Directive BM" />
                <f:selectItem itemLabel="Reglementation internationnale" itemValue="Reglementation internationnale"/>
                </h:selectOneMenu>
               ,
             
                ----

                     <h:commandButton value="Ajouter"  action="#{programme.ValiderForm}" ></h:commandButton>
     <h:commandButton value="Annuler"  ></h:commandButton>
    ,
             
           

        </h:form>   
        
    </html>
</f:view>



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:


dans Programme.java
 private List 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);



      
 }



FICHIER Devises.java


 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;
   }





lors de l'execution du fichierr .jsf, je recois cette exception:




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.





Merci de m'aider

3 réponses

lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008
26 mai 2008 à 09:57
je peux pas avoir votre aide les amis?!
0
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
24 juin 2008 à 14:51
Bonjour,

As-tu déclaré le bean dans ton fichier faces-config.xml?

<managed-bean>
        <managed-bean-name>programme</managed-bean-name>
        <managed-bean-class>
            leNomduPackageComplet.Programme
        </managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

Cordialement,
0
cs_delivrance84 Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 15 octobre 2009
20 juil. 2008 à 15:14
bonjour,

j'avais le même probleme de lucky82, Merci boumarsel pour votre reponse mais malheureusement même si j'ai suivis votre salution ,le probleme n'a pas encore éte résolus ,s'il vous plait est-ce qu'il y aquelqu'un qui peut m'aider à ce point là?je suis en stage et je suis vraiment bloquée et Merci d'avance. 
0
Rejoignez-nous