Création d'un objet DAOFactory avec Hibernate et Struts
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:
Code:
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);
}
} |
Pour encapsuler tout ca, j'ai une fabrique DAO:
Code:
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();
}
} |
qui hérite de:
Code:
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();
} |
Mais la fabrique ne veut pas s'instancier, et j'ai une erreur:
Code:
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)
... |
La ligne 41 de HiberAction correspond en fait à la ligne :
Code:
myFactory = new HibernateDAOFactory();
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 ?