Bonjour,
je fais appel à vous car là je comprend vraiment plus rien, en fait je bosse sur un projet Web servlet/jsp sous tomcat avec une couche d'hibernate; et depuis vendredi matin impossible de lancer mon projet il me lance ceci :
Code:
java.lang.NoClassDefFoundError: Could not initialize class fr.annu.hibernate.HibernateUtil
fr.annu.servlet.FormulaireDemandeServlet.doGet(FormulaireDemandeServlet.java:73)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.jalios.jcms.servlet.FriendlyURLFilter.doFilter(FriendlyURLFilter.java:115)
Voici ma classe HibernateUtil:
Code:
package fr.annu.hibernate;
import org.hibernate.*;
import org.hibernate.cfg.*;
/**
*
* Gestionnaire (ouverture/fermeture) de sessions hibernate
*
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Crée la SessionFactory
sessionFactory =
new Configuration().configure("/fr/annu/hibernate/hibernate.cfg.xml").buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException("Problème de configuration : "
+ ex.getMessage(), ex);
}
}
public static final ThreadLocal threadLocal = new ThreadLocal();
/**
* Récup de la session courante
* @return
* @throws HibernateException
*/
public static Session currentSession()
throws HibernateException {
Session s = (Session) threadLocal.get();
// Ouvre une nouvelle Session, si ce Thread n'en a aucune
if (s == null) {
s = sessionFactory.openSession();
threadLocal.set(s);
}
return s;
}
/**
* fermeture de la session hibernate
* @throws HibernateException
*/
public static void closeSession()
throws HibernateException {
Session s = (Session) threadLocal.get();
threadLocal.set(null);
if (s != null)
s.close();
}
}
Je ne pense pas qu'il y ai d'erreur là.
Voici la servlet ciblée :
Code:
public class FormulaireDemandeServlet extends HttpServlet implements
mesServlet {
private static final Logger logger = Logger
.getLogger(FormulaireDemandeServlet.class);
private static final Channel channel = Channel.getChannel();
/**
* Affichage du formulaire
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
logger.debug("FormulaireDemandeServlet.doGet");
HttpSession session = request.getSession();
Session sessionHibernate = HibernateUtil.currentSession();
Utilisateur utilisateur = new Utilisateur();
List affectations = new ArrayList();
List applications = new ArrayList();
applications = BaseDAO.getInstance().findAll();
request.getSession().setAttribute("applications", applications);
request.getSession().setAttribute("utilisateur", utilisateur);
request.setAttribute("affectations", affectations);
HibernateUtil.closeSession();
getServletContext().getRequestDispatcher(
JSP_PATH_DEMANDE + "formulaireDemande.jsp").forward(request,
response);
}
Le message d'erreur pointe la ligne :
Code:
Session sessionHibernate = HibernateUtil.currentSession();
Le truc c'est qu'entre le moment où ca fonctionnait et maintenant je n'ai fait que supprimer le plugin eclipse " Hibernate Synchronizer" et supprimer manuellement certaines classes hibernate.
J'ai donc pensé dans un premier temps que c'était lié à ça j'ai donc tout restauré mais ca change rien ...
J'ai vérifié les librairies, tout est bien là , franchement je vois pas du tout d'où peut provenir le bug, si quelqu'un avait une idée....
Merci d'avance.