大家好。
我初学JPA,碰到一个错误,个人分析其原因,可能在于版本兼容性什么什么的之类的问题,代码我查了很多资料,好像没有问题。
META-INF.xml
=======<persistence-unit name="user" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.driver_class"
value="org.gjt.mm.mysql.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/testjpa" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>=======@Entity
public class User{
private int id;
private String name; @Id @GeneratedValue
public int getId() {
return id;
}
public ..
}=======JUnit Test
@Test
public void createTable() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("user");
EntityManager manager = factory.createEntityManager();
}
=======
Jar(15个):
hibernate-distribution-3.5.5-Final(8个)
   hibernate3.jar
   lib\bytecode\cglib\cglib-2.2.jar
   lib\required\*.jar (6个)
hibernete-annotation-3.4.0.GA (3个)
    hibernate-annotation.jar
    lib\ejb3-persistence.jar
    lib\hibernate-commons-annotaions.jar
hibernate-entitymanaher-3.4.0.GA (3个)
    hibernate-entitymanager.jar
    lib\test\log4j.jar
    lib\test\slf4j-log4j12.jar
Mysql Connector :
mysql-connector-java-3.1.13-bin.jar
======
Exception :
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at javax.persistence.Persistence.findAllProviders(Persistence.java:112)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
..Junit Exception
======
是不是我引入的包有问题?比如,我的确没有在J2EE5.0的doc里面找到javax/persistence/spi/ProviderUtil这个类。
但是奇怪,我是按照资料上说的做的啊?
请知道的解答一下。谢谢。