读书人

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

发布时间: 2012-02-01 16:58:19 作者: rapoo

怎么会找不到方法呢?请各位高人指教,谢谢了.
报错信息: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是把,不晓得你那个编译完后是否要做怎么操作(类似我上面的加强),
[解决办法]
把导入的包删除,编译一下,然后再导入重新编译一下试试

读书人网 >Java Web开发

热点推荐