首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

如何会找不到方法呢?请各位高人指教,多谢了

2012-02-01 
怎么会找不到方法呢?请各位高人指教,谢谢了.报错信息:javax.servlet.ServletException:Filterexecutionthr

怎么会找不到方法呢?请各位高人指教,谢谢了.
报错信息: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()   {
        }
       
}

[解决办法]
我也老是出这个问题,我用的是jdo编译完原代码后要用jdo加强下(我编译的class和jdo又没关系)
你用的是Hibernate是把,不晓得你那个编译完后是否要做怎么操作(类似我上面的加强),
[解决办法]
把导入的包删除,编译一下,然后再导入重新编译一下试试

热点排行