java.lang.NoClassDefFoundError: org/hibernate/cfg/AnnotationConfiguration
大家好,我刚接触hibernate。一开始没有在web环境下,一切正常。但是当在web环境下使用时,总遇到java.lang.
NoClassDefFoundError: org/hibernate/cfg/AnnotationConfiguration。
我在web.xml中添加了:
<listener>
<listener-class>com.mypackage.configuration.HibernateListener</listener-class>
</listener>
其中,com.mypackage.configuration.HibernateListener为:
package com.mypackage.configuration;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
/**
* @author This class garanties that only one single SessionFactory
* is instanciated and that the configuration is done thread safe as
* singleton. Actually it only wraps the Hibernate SessionFactory.
* You are free to use any kind of JTA or Thread transactionFactories.
*/
public class HibernateSessionFactoryUtil {
/** The single instance of hibernate SessionFactory */
private static org.hibernate.SessionFactory sessionFactory;
/**
* disable contructor to guaranty a single instance
*/
private HibernateSessionFactoryUtil() {
}
static{
// Annotation and XML
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
// XML only
// sessionFactory = new Configuration().configure().buildSessionFactory();
}
public static SessionFactory getInstance() {
return sessionFactory;
}
/**
* Opens a session and will not bind it to a session context
* @return the session
*/
public Session openSession() {
return sessionFactory.openSession();
}
/**
* Returns a session from the session context. If there is no session in the context it opens a session,
* stores it in the context and returns it.
* This factory is intended to be used with a hibernate.cfg.xml
* including the following property <property
* name="current_session_context_class">thread</property> This would return
* the current open session or if this does not exist, will create a new
* session
*
* @return the session
*/
public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
/**
* closes the session factory
*/
public&nb