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