IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

configurer jsf et hibernate sous tomcat6


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut configurer jsf et hibernate sous tomcat6
    Bonjour à tous,

    est ce que quelqu'un à une idée comment configurer jsf pour povoir travailler avec hibernate3 sous tomcat6

    merci par avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Moi j'ai une fichier persistence.xml :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.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_1_0.xsd">
     
         <persistence-unit name="VCardPU" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>   
            <properties>
                <property name="hibernate.hbm2ddl.auto" value="update"/>
                <property name="hibernate.show_sql" value="true"/>
                <!-- Auto detect annotation model classes -->
                <property name="hibernate.archive.autodetection" value="class"/>
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
                <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
                <property name="hibernate.connection.username" value="xxx"/>
                <property name="hibernate.connection.password" value="xxx"/>
                <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/VCardImport"/>
     
            </properties>
        </persistence-unit>
    </persistence>
    Et j'ai dû modifier le fichier context.xml mais je ne sais pas si c'est utile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/VCard">
      <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="VCard" password="xxx" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/VCardImport" username="xxx"/>
    </Context>
    J'utilise JPA pour la persistence et les query.

    Une classe "Entity" :
    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
    104
    105
    106
    107
    108
    109
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.louerlinternet.images.entity;
     
    import java.io.Serializable;
    import javax.ejb.TransactionAttribute;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.ejb.TransactionAttributeType;
    import javax.persistence.Column;
    import javax.persistence.Lob;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
     
    /**
     *
     * @author quilovnic
     */
    @Entity
    @Table(name = "IMAGES")
    @TransactionAttribute(value=TransactionAttributeType.NEVER)
    @NamedQueries({
        @NamedQuery(name="ImageEntity.findAll", query="select images from ImageEntity images"),
        @NamedQuery(name = "ImageEntity.findById", query = "SELECT im FROM ImageEntity im WHERE im.id = :id"), 
        @NamedQuery(name = "ImageEntity.findByName", query = "SELECT im FROM ImageEntity im WHERE im.name = :name")
    })
    public class ImageEntity implements Serializable {
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "ID", nullable = false)
        private Long id;
     
        @Column(name = "IMG_PATH", nullable = true)
        private String path;
     
        @Column(name = "NAME", nullable = true)
        private String name;
     
        @Lob
        @Column(name = "PHOTO", length=1048576, nullable=false)
        private Serializable photo;
     
        public void setId(Long id) {
            this.id = id;
        }
     
        public Long getId() {
            return id;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (getId() != null ? getId().hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof ImageEntity)) {
                return false;
            }
            ImageEntity other = (ImageEntity) object;
            if ((this.getId() == null && other.getId() != null) || (this.getId() != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "com.louerlinternet.images.entity.ImageEntity[id=" + getId() + "]";
        }
     
        public String getPath() {
            return path;
        }
     
        public void setPath(String path) {
            this.path = path;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public Serializable getPhoto() {
            return photo;
        }
     
        public void setPhoto(Serializable photo) {
            this.photo = photo;
        }
     
    }
    Un dao:
    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
     
      /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package com.louerlinternet.images.dao;
     
    import com.louerlinternet.images.entity.ImageEntity;
    import com.louerlinternet.vcard.exception.DaoException;
    import java.util.List;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
     
    /**
     *
     * @author quilovnic
     */
    public class ImageDao {
     
        EntityManager em = null;
     
        public List<ImageEntity> findAll(){
            List l = getEntityManager().createNamedQuery("ImageEntity.findAll").getResultList();
            closeEntityManager();
            return l;
        }
     
        public ImageEntity findById(Long id){
            ImageEntity ie = (ImageEntity)getEntityManager().createNamedQuery("ImageEntity.findById").setParameter("id", id).getSingleResult();
            closeEntityManager();
            return ie;
        }
        public void persist(ImageEntity image) throws DaoException{
            System.out.println("persist");
            getEntityManager().getTransaction().begin();
            try {
                em.persist(image);
                em.getTransaction().commit();
                System.out.println("Commited");
            } catch (Exception e) {
                System.out.println(e.getMessage());
                em.getTransaction().rollback();
                DaoException exe = new DaoException();
                exe.setStackTrace(e.getStackTrace());
                throw new DaoException();
            } finally {
                closeEntityManager();
            }
        }
        private EntityManager getEntityManager() {
            if (em == null || !em.isOpen()) {
                EntityManagerFactory emf = Persistence.createEntityManagerFactory(
                        "VCardPU");
                em = emf.createEntityManager();
            }
            return em;
        }
     
        private void closeEntityManager() {
            getEntityManager().close();
        }
     
    }
    Voilà déjà quelques indications

    J'utilise Netbeans comme IDE

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    bonjour et merci pour la réponse.

    moi j'utilise eclipse europa avec JBossTools.

    j'ai mon fichier de configuration hibernate.cfg.xml je ne sais pas ou le mettre (je l'avais mis sous le repertoire src ou il ya le package qui comport les fichiers de mapping .hbm et .java)

    et on suivant la documentation d'hibernate j'ai ajouter ce bout de code au fichier web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <listener>
        <listener-class>classes.com.hibernate.HibernateListener</listener-class>
    </listener>
    puis la classe HibernateListener au package qui contient les fichiers de mapping:
    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
     
    package com.hibernate;
     
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
     
    public class HibernateListener implements ServletContextListener {
     
    	public void contextInitialized(ServletContextEvent event){
    		HibernateUtil.getSessionFactory();
    	}
     
    	public void contextDestroyed(ServletContextEvent event){
    		HibernateUtil.getSessionFactory().close();
    	}
    }
    enfin pour les jar hibernate et le driver mysql je les ai mis sous le lib de mon app.

    aprés tout ça j'ai l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) classes.com.hibernate.HibernateListener
    java.lang.ClassNotFoundException: classes.com.hibernate.HibernateListener
    est ce que vous pensez que ça a une relation avec le fichier context.xml ?
    et est ce que vous pouvez m'expliquer que dois je y mettre??

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut voici une proposition
    Bonjour , g exactement la mm configuration, je travaille avec eclipse europa , tomcat 6 et hibernate 3, dabord fait un tour vers ce lien,
    http://balusc.blogspot.com/2008/01/j...nd-tomcat.html
    tu trouveras exactement les etapes a suivre pour configurer eclipse et tomcat en utilisant les jsf
    ensuite telecharge hibernate tools 3.2.0.GA.zip et pren tt les plugins qui y a et copi les dans les plugins de eclipse et fai pareil pour les features, ensuite tu crée ton projet wab dynamic project et dans webcontnt > webinf > lib tu met les libraires ke tu trouveras dans le zip ke je vai tenvoyer .

    Pour moi ca marche tré bien et bonne chance pour ton travail

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    merci pour la repense,

    je comprends que vous n'ajouter pas de listener?


    est ce vous pouvez m'expliquer ou vous mettez le driver de la connexion, le les jar d'hibernate et la structure générale de l'application : les beans et les fichiers de mapping ( .hbm , .java ) et hibernate.cfg.xml.


    ?

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67

Discussions similaires

  1. Configuration Hibernate sous Eclipse
    Par the fog dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/05/2010, 14h57
  2. configurer hibernate sous Spring web services
    Par MyPaiN dans le forum Hibernate
    Réponses: 2
    Dernier message: 25/05/2009, 11h22
  3. Pb de configuration JSF sous machine Unix
    Par NICOFOU dans le forum JSF
    Réponses: 1
    Dernier message: 30/07/2007, 12h08
  4. Réponses: 3
    Dernier message: 15/05/2007, 16h47
  5. [debutant] configurer hibernate sous myeclipse
    Par solawe dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/11/2006, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo