Bonjour à tous,
est ce que quelqu'un à une idée comment configurer jsf pour povoir travailler avec hibernate3 sous tomcat6
merci par avance.
Bonjour à tous,
est ce que quelqu'un à une idée comment configurer jsf pour povoir travailler avec hibernate3 sous tomcat6
merci par avance.
Moi j'ai une fichier persistence.xml :
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
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>
J'utilise JPA pour la persistence et les query.
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>
Une classe "Entity" :
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
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; } }
Voilà déjà quelques indications
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(); } }
J'utilise Netbeans comme IDE
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
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 <listener> <listener-class>classes.com.hibernate.HibernateListener</listener-class> </listener>
enfin pour les jar hibernate et le driver mysql je les ai mis sous le lib de mon app.
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(); } }
aprés tout ça j'ai l'exception :
est ce que vous pensez que ça a une relation avec le fichier context.xml ?
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
et est ce que vous pouvez m'expliquer que dois je y mettre??![]()
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![]()
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.
?![]()
va voir sur ce lien http://www.roseindia.net/hibernate/index.shtml
Partager