Bonjour,
je suis plus habitué au forum STRUTS, mais là je commence avec Hibernate, et j'ai déjà un blocage.
J'essaie de créer une couche hibernate avec Struts.
Donc j'ai une action qui ressemble a ca:
Pour encapsuler tout ca, j'ai une fabrique 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 package net.yozine.action; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import net.yozine.Utilisateur; import net.yozine.dao.HibernateDAOFactory; import net.yozine.form.HiberTestForm; import net.yozine.interfaces.UtilisateurDAO; import org.apache.commons.beanutils.BeanUtils; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class HiberAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { HibernateDAOFactory myFactory; myFactory = new HibernateDAOFactory(); UtilisateurDAO user = myFactory.getUtilisateurDAO(); // Ajoute l'utilisateur dans la base // necessite l'emploi d'un formBean HiberTestForm myForm = (HiberTestForm) form; Utilisateur myUser = new Utilisateur(); BeanUtils.copyProperties(myUser, myForm); user.insertUtilisateurDAO(myUser); // Liste les utilisateurs existants List userList = user.listUtilisateurDAO(); Utilisateur[] users = new Utilisateur[userList.size()]; for (int i=0; i < userList.size(); i++) { users[i] = (Utilisateur) userList.get(i); } request.getSession().setAttribute("dao", users); String target = "success"; return mapping.findForward(target); } }
qui hérite de:
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 package net.yozine.dao; import net.yozine.interfaces.UtilisateurDAO; import org.hibernate.HibernateException; import org.hibernate.Session; public class HibernateDAOFactory extends DAOFactory { private static Session session; public static Session creerConnexion() { try { session = HibernateUtil.getCurrentSession(); } catch (HibernateException e) { e.printStackTrace(); } return session; } public UtilisateurDAO getUtilisateurDAO() { return new HibernateUtilisateurDAO(); } }
Mais la fabrique ne veut pas s'instancier, et j'ai une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 package net.yozine.dao; import net.yozine.interfaces.UtilisateurDAO; import org.hibernate.Session; public abstract class DAOFactory { public abstract UtilisateurDAO getUtilisateurDAO(); }
La ligne 41 de HiberAction correspond en fait à la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 java.lang.NoClassDefFoundError: org/hibernate/HibernateException net.yozine.action.HiberAction.execute(HiberAction.java:41) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) ...
Merci de me répondre, si vous avez déjà eu ce problème, ou si vous avez des éléments de réponse. J'ai peut etre un probleme de classpath ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part myFactory = new HibernateDAOFactory();
Partager