bonjour
j'ai un petit probleme avec netbeans et hibernate malgré les tuto et le livre...
et j'ai déja chercher sur les forum et sur google ( plusieurs jours déja )
je suis déja à 2 semaine de java a temps plein
Environement:
Netbeans 5.5 -> environement choisi pour le projet
hibernate 3.2
MySQL 5.0 -> base de données choisi par le projet
edit:
je pense avoir trouver une piste pour probleme décrit ci dessous :
en regardant les log j'ai vu qu'il n'arrive pas a trouver le fichier de conf
dans netbeans on doit le mettre ou ?
fin edit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax). log4j:WARN Please initialize the log4j system properly. 20 mars 2007 17:14:00 org.apache.catalina.core.StandardContext start INFO: Le conteneur org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test] a déjà été démarré Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found
je travail sur un exemple tout simple décrit beaucoup plus en détails ci dessous.
je dois signaler que mysql marche bien mais j'ai un doute sur la connexion entre hibernate et mysql ainsi que sur les paths des différents fichier a mettre en place
quelqu'un pourrais t'il m'indiquer les étapes et les repertoires où mettre mes différents fichiers parce que je ne comprend pas pourquoi cela ne marche pas
( message d'erreur tout a la fin )
par avance merci au gens qui voudront m'aider et le pourront
dans la config de netbeans :
Dois je ajouter le driver MySQL dans Netbeans ? ( runtime -> drivers )
Ou est ce que je dois ajouter directement une data source via interface web dans http://localhost:8084/admin/ -> ressources -> une datasource
je dois dire que j'ai fait les deux successivement sans succes avec hibernate !
Par contre les ptit script normaux de connexion à une base de données marche.
Description de mes fichiers :
BASE DE DONNEES
user : toto
pass : toto
base : test
table : toto que j'ai rempli de quelque ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE `toto` ( `id` int(10) NOT NULL auto_increment, `nom` varchar(20) NOT NULL default 'toto', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
NETBEANS
Nom du projet : test
type : application web
option particuliere :
l'option Set Source level to 1.4 est décoché
l'option JSF est coche, j'ai gardé la config donnée par défaut
Librairies:
nom: hibernate-mysql
contenu :
hibernate3.jar
mysql-connector-java-5.0.4-bin.jar
+ la liste ci dessous
liste des lib du tar.gz
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 _README.txt jaas.jar ant-1.6.5.jar jaas.licence.txt ant-antlr-1.6.5.jar jacc-1_0-fr.jar ant-junit-1.6.5.jar javassist.jar ant-launcher-1.6.5.jar jaxen-1.1-beta-7.jar ant-swing-1.6.5.jar jboss-cache.jar antlr-2.7.6.jar jboss-common.jar antlr.license.txt jboss-jmx.jar apache.license-2.0.txt jboss-system.jar apache.license.txt jdbc2_0-stdext.jar asm-attrs.jar jdbc2_0-stdext.licence.txt asm.jar jgroups-2.2.8.jar c3p0-0.9.1.jar jta.jar c3p0.license.txt jta.licence.txt cglib-2.1.3.jar junit-3.8.1.jar checkstyle-all.jar log4j-1.2.11.jar cleanimports.jar oscache-2.1.jar commons-collections-2.1.1.jar proxool-0.8.3.jar commons-logging-1.0.4.jar swarmcache-1.0rc2.jar concurrent-1.3.2.jar syndiag2.jar connector.jar version.properties connector.licence.txt versioncheck.jar dom4j-1.6.1.jar xerces-2.6.2.jar ehcache-1.2.3.jar xml-apis.jar
JAVA CODE mis dans le meme package
pakage : essai
Class Toto : toto.java
servlet : voir.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 package essai; public class Toto { public Toto(){} private Integer id; private String nom; public Integer getId() { return id; } private void setId(Integer id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom){ this.nom = nom; } }
desc : afficher les elements (code recuperer et adapter du tuto officiel)
Class: HibernateUtil.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 package essai; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.ServletException; import java.util.*; import java.text.SimpleDateFormat; import essai.HibernateUtil; public class voir extends HttpServlet { protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { try { HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction(); PrintWriter out = response.getWriter(); List result = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(Toto.class).list(); if (result.size() > 0) { for (Iterator it = result.iterator(); it.hasNext();) { Toto toto = (Toto) it.next(); out.println("<p>"); out.println("<br />id : " + toto.getId() ); out.println("<br />nom: " + toto.getNom() ); out.println("</p>"); } } out.flush(); out.close(); HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit(); } catch (Exception ex) { HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback(); throw new ServletException(ex); } } }
desc: une classe qui aide a la connexion à hibernate si j'ai saisi
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 package essai; import org.hibernate.*; import org.hibernate.cfg.*; public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from hibernate.cfg.xml sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } }
XML -> je ne sais pas ou les mettres
config : hibernate.cfg.xml -> je l'ai mis dans WEB-INF sans succes et puis dans le package essai mais sans succes tjs
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 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.username">toto</property> <property name="hibernate.connection.password">toto</property> <property name="show_sql">true</property> <!-- mapping de base--> <mapping resource="java/essai/Toto.hbm.xml"/> </session-factory> </hibernate-configuration>
config : Toto.hbm.xml -> je l'ai mis dans le package essai
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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Toto" table="toto"> <id name="id" column="id"> <generator class="increment"/> </id> <property name="nom" column="nom"/> </class> </hibernate-mapping>
enfin voila cela m'affiche ceci comme erreur
merci au gens qui voudront m'aider et le pourront
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 exception javax.servlet.ServletException: L'exécution de la servlet a lancé une exception org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368) cause mère java.lang.NoClassDefFoundError essai.voir.doGet(voir.java:20) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
cordialement
mathieu
Partager