解决Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity问题

问题

Spring3.0.0.RELEASE搭配Hibernate3.3.2.GA,构建事务案例,启动报错。

日志异常如下:

Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
Caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity
	at org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean.<init>(AnnotationSessionFactoryBean.java:90)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)
	... 27 more
Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 33 more

分析

从ClassNotFoundException,初步判定是少导了jar。不管百度还是google,大部分的答案都是下载 ejb3-persistence.jar。

但是,坑爹的是,找到ejb3-persistence.jar这个jar在mavenRepository里面对应的地址,却根本无法下载。不过,其中一篇文章倒是给我提供了一个思路:JPA的jar包。

于是,我就去mavenRepository,找spring-orm的依赖(eclipse中并没有自动导入):

解决

在pom文件中导入对应的依赖即可。

        <dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>persistence-api</artifactId>
			<version>1.0.2</version>
		</dependency>

文章结束。

猜你喜欢

转载自blog.csdn.net/cysunc/article/details/86613628
今日推荐