在測試hibernate是,當程序運行到如下的語句時:

?1
java.lang.IllegalAccessError:?tried?to?access?method?net.sf.ehcache.CacheManager.<init>()V?from?class?org.hibernate.cache.EhCacheProvider
?2
????at?org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:124)
?3
????at?org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:180)
?4
????at?org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1213)
?5
????at?no.brodwall.demo.domain.persist.ProductDAOTest.setUp(ProductDAOTest.java:45)
?6
????at?junit.framework.TestCase.runBare(TestCase.java:125)
?7
????at?junit.framework.TestResult$1.protect(TestResult.java:106)
?8
????at?junit.framework.TestResult.runProtected(TestResult.java:124)
?9
????at?junit.framework.TestResult.run(TestResult.java:109)
10
????at?junit.framework.TestCase.run(TestCase.java:118)
11
????at?junit.framework.TestSuite.runTest(TestSuite.java:208)
12
????at?junit.framework.TestSuite.run(TestSuite.java:203)
13
????at?org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
14
????at?org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
15
????at?org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
16
????at?org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
17
????at?org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
18
????at?org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
在網上找呀找,終于找到了,是ehcache的一個bug引起的,把ehcache升級到1.2以上的版本就行了,:0)

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18
