报错信息:javax.servlet.ServletException: Filter execution threw an exception
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
root cause java.lang.NoSuchMethodError: org.hibernate.SessionFactory.getCurrentSession()Lorg/hibernate/classic/Session;
util.TransactionFilter.doFilter(TransactionFilter.java:38)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)但是我在导入的jar包里可以找到SessionFactory类的getCurrentSession()方法,写的类里也没有报错啊.源代码:
public class TransactionFilter implements Filter{
    
    /** Creates a new instance of TransactionFilter */
    public TransactionFilter() {
    }    public void init(FilterConfig filterConfig) throws ServletException {
    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            System.out.println("Transaction starting...");
            // Session session=null;
        try{
              HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
             
              chain.doFilter(request,response);
              HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();
             
              System.out.println("end transaction...");
            } catch(Exception e){
              e.printStackTrace();
              HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
         }
    }public class HibernateUtil {
    
    private static SessionFactory factory=null;
    /** Creates a new instance of HibernateUtil */
    public HibernateUtil() {
    }
    
    static{
        Configuration config = new Configuration();
        config.configure("service/dao/hibernate/hibernate.cfg.xml");
        factory = config.buildSessionFactory();
    }
    
    public static SessionFactory getSessionFactory()
    {
        return factory;
    }    public void destroy() {
    }
    
}

解决方案 »

  1.   

    我也老是出这个问题,我用的是jdo编译完原代码后要用jdo加强下(我编译的class和jdo又没关系)
    你用的是Hibernate是把,不晓得你那个编译完后是否要做怎么操作(类似我上面的加强),
      

  2.   

    这个过滤器主要是要实现线程安全,每个请求操作都会得到一个独立的事务.难道和我的jdk有关系吗?我的jdk是1.5的.搞了很久了,始终出不来.郁闷...