您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> hibernate junit时的问题

hibernate junit时的问题

来源:网络整理     时间:2016/6/27 3:24:00     关键词:

关于网友提出的“ hibernate junit时的问题”问题疑问,本网通过在网上对“ hibernate junit时的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: hibernate junit时的问题
描述:

错误信息如下 java.lang.ExceptionInInitializerError
at service.UserManager.exists(UserManager.java:8) at service.UserManagerTest.testExists(UserManagerTest.java:17)
/> 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:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
/> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
/> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)<> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge]
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:389) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:262)<> at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) at util.HibernateUtil.(HibernateUtil.java:9)
... 26 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:384)
... 32 more Caused by: org.hibernate.cache.CacheException: could not instantiate CacheProvider [org.hibernate.cache.internal.NoCacheProvider] at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.(RegionFactoryCacheProviderBridge.java:66) ... 37 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.internal.NoCacheProvider at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188)<> at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192) at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.(RegionFactoryCacheProviderBridge.java:63)
... 37 more ————————————————————————————————————————————————hibernate配置文件如下
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


com.mysql.jdbc.Driver jdbc:mysql://localhost/test root root org.hibernate.dialect.MySQLDialect 1 thread org.hibernate.cache.internal.NoCacheProvider true true
------------------------------------------------------------------------ model层 package model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class User { private int id; private String username; private String password; @Id
@GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ------------------------------------------------ service层 package service; import model.User;
import org.hibernate.SessionFactory; import org.hibernate.classic.Session;<> import util.HibernateUtil; public class UserManager { public boolean exists(User u) throws Exception { SessionFactory sf = HibernateUtil.getSessionFactory();<> Session s = sf.getCurrentSession(); s.beginTransaction(); long count = (Long)s.createQuery("select count(*) from User u where u.username = :username") .setString("username", u.getUsername()) .uniqueResult(); s.getTransaction().commit(); if(count > 0) return true; return false; }
public void add(User u) throws Exception { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.getCurrentSession(); s.beginTransaction(); s.save(u); s.getTransaction().commit(); } } ------------------------------ util层 package util; import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration; public class HibernateUtil { private static SessionFactory sf; static { sf = new AnnotationConfiguration().configure().buildSessionFactory(); } public static SessionFactory getSessionFactory() {
return sf; } } --------------------------------- junit  类 package service; import org.junit.Assert; import model.User; import org.junit.Test;
public class UserManagerTest { @Test
public void testExists() throws Exception { UserManager um = new UserManager(); User u = new User(); System.out.print("gfgf");
u.setUsername("a"); boolean exists = um.exists(u);  System.out.print(exists); Assert.assertEquals(true, exists);
}
@Test
public void testAdd() throws Exception { UserManager um = new UserManager(); User u = new User(); u.setUsername("b"); boolean exists = um.exists(u);  if(!exists){
um.add(u); u.setUsername("b");
Assert.assertEquals(true,um.exists(u)); }else{ Assert.fail("not added"); } } }
------------------ 导入的包 antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar hibernate3.jar javassist-3.9.0.GA.jar jta-1.1.jar log4j-1.2.15.jar mysql-connector-java-3.1.13-bin.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar 哪里有错!


解决方案1:

去掉这句配置org.hibernate.cache.internal.NoCacheProvider

解决方案2:

你用了缓存,却没有jar包,找下jar包吧。或者干掉下面的配置。
org.hibernate.cache.internal.NoCacheProvider Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.internal.NoCacheProvider


以上介绍了“ hibernate junit时的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2098054.html

相关图片

相关文章