想问一下,怎么我的
getHibernateTemplate().save(po)
getHibernateTemplate().update(po)
getHibernateTemplate().delete(po)
都用不了呀,报:
java.lang.NoSuchMethodError: org.jboss.cache.TreeCache.putFailFast(Lorg/jboss/cache/Fqn;Ljava/lang/Object;Ljava/lang/Object;J)Ljava/lang/Object 
但是我的这个方法却是可以的:
public List findAllBlog() throws DataAccessException {
// TODO Auto-generated method stub
return (List) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session pSession)
throws HibernateException {
DetachedCriteria detachedCriteria = DetachedCriteria
.forClass(Tblog.class);
Criteria criteria = detachedCriteria
.getExecutableCriteria(pSession);
List results = criteria.list();
if (results == null || results.isEmpty())
return null;
else
return results;
}
}, true);

到底怎么回事呢?有人晓得么?

解决方案 »

  1.   

    环境是spring1.2.6 + hibernate3.0.5 知道的请说一下,谢谢!
      

  2.   

    详细异常:
    java.lang.NoSuchMethodError: org.jboss.cache.TreeCache.putFailFast(Lorg/jboss/cache/Fqn;Ljava/lang/Object;Ljava/lang/Object;J)Ljava/lang/Object;
    at org.hibernate.cache.TreeCache.put(TreeCache.java:74)
    at org.hibernate.cache.UpdateTimestampsCache.invalidate(UpdateTimestampsCache.java:67)
    at org.hibernate.engine.ActionQueue.afterTransactionCompletion(ActionQueue.java:171)
    at org.hibernate.impl.SessionImpl.afterTransactionCompletion(SessionImpl.java:406)
    at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:294)
    at org.hibernate.jdbc.JDBCContext.connectionCleanedUp(JDBCContext.java:90)
    at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:272)
    at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:194)
    at org.hibernate.impl.SessionImpl.close(SessionImpl.java:289)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.doClose(SessionFactoryUtils.java:751)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:740)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.releaseSession(SessionFactoryUtils.java:720)
    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:326)
    at org.springframework.orm.hibernate3.HibernateTemplate.merge(HibernateTemplate.java:662)
    at com.blog.entity.blog.impl.BlogManagerImpl.saveBlog(BlogManagerImpl.java:27)
    at com.blog.entity.blog.test.BlogManagerTestCase.testSaveReply(BlogManagerTestCase.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
      

  3.   

    是不是在spring1.2+hibernate3.0.5下不用使用getHibernateTemplate().save(po);方法
      

  4.   

    你使用了TreeCache,也就是2级缓存配了这个缓存,但是对应的lib里面没有TreeCache的jar文件,所以出错了检查一下hibernate.cfg.xml中,把2级缓存改正
      

  5.   

    楼上说地不对,是JBossCache版本不对,如果没有该jar就是抛出
    ClassNotFoundException了,检查一下版本依赖