Exception in thread "main" java.lang.IncompatibleClassChangeError: Umsetzung Klasse
Ich versuche einfache Anwendung für die Persistenz-Objekt in die DB mit Hilfe von JPA-(Hibernate Anbieter). Ich bin sehr neu in diesem PPV. Ich suchte eine Menge auf dem Netz, aber nicht immer die Lösung meines Problems. Ich weiß nicht, welche Gläser benötigt werden für diese app. Plz dieses problem zu beheben. Ich habe versucht diese einfache app für die letzten 2 Tage. Aber es funktioniert nicht. plz help me. Vielen Dank im Voraus.
Dies ist mein code : Entity.java
package com.jpa;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table (name="student")
public class EntityClass
{
@Id
private int id;
private String fName;
private String lName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
}
dies ist meine MainClass:
package com.jpa;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class MainClass
{
public static void main(String[] args)
{
EntityClass e= new EntityClass();
e.setfName("BNT");
e.setlName("SOFT");
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("persistence");
EntityManager eManager = emFactory.createEntityManager();
eManager.getTransaction().begin();
eManager.persist(e);
eManager.getTransaction().commit();
eManager.close();
}
}
- und das ist meine persistence.xml Datei:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="persistence" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- <class>com.geowarin.hibernate.jpa.standalone.model.User</class> -->
<class>com.jpa.EntityClass</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/bnt" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="bnt123" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<!-- <property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.hbm2ddl.import_files" value="sql/import-users.sql" /> -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
</properties>
</persistence-unit>
Immer wenn ich versuche zu laufen MainClass.java es gibt folgenden Fehler:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:107)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at com.jpa.MainClass.main(MainClass.java:29)
...
Ich weiß, dass etwas falsch ist, beim hinzufügen der erforderlichen Gläser...
Ich habe folgende Gläser:
javax.persistence.jar
mysql-connector-java-5.1.24-bin.jar
hibernate-entitymanager.jar
hibernate.3.3.2.jar
hibernate-commons-annotations-4.0.1.Final.jar
jta-1.1.jar
antlr-2.7.6.jar
dom4j-1.6.1.jar
asm-3.1.jar
hibernate-core-3.5.1-Final.jar
hibernate-annotaions-3.5.1-Final.jar
cglib-2.2.2.jar
Ist nichts falsch in diesen Gläsern? Ist es erforderlich, fügen Sie mehr Gläser? Plz fühlen sich frei, um irgendwelche Ratschläge geben, falls ich falsch mache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler tritt auf, Wann immer Sie inkompatible änderungen an der bestehenden Bibliothek von verschiedenen Versionen der gleichen Klasse ist in den classpath. Pls beziehen sich diese Antwort für weitere details.
Kommen zu Ihrer Frage, ich sehe, Sie sind mit hibernate 3.5.x und auch diese Gläser mit der version 4.x und 3.3.x. Nur für Ihre Referenz dies ist der screenshot von meiner Gläsern mit Bezug auf hibernate 4.x
Für JPA zu arbeiten, ich benutze die oben genannten Gläser. Auch, fügen Sie bitte die Treiber für Ihre DB auf der Liste. BTW, ich habe immer schlage vor, Sie verwenden irgendeine Art von dependency-management-tools wie ivy, gradle oder maven zum verwalten Ihrer Abhängigkeit eher, Sie versuchen, Sie zu verwalten manuell. Dies löst die meisten Probleme.