2017-05-21 2 views
0

RESOUDREinitiale création SessionFactory échoué: java.lang.NoClassDefFoundError: javax/persistance/EntityListeners

I added the Persistence JPA2.1 to the library

L'erreur inicial a été résolu, mais maintenant j'ai un autre:

Initial SessionFactory creation failed: java.lang.NoClassDefFoundError: javax/persistence/NamedStoredProcedureQuery 

Des pensées?

Inicial post

I'm having this error:

Initial SessionFactory creation failed: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners 
Exception in thread "main" java.lang.ExceptionInInitializerError 
at modelo.util.HibernateUtil.<clinit>(HibernateUtil.java:29) 
at modelo.dao.GenericDAO.getAll(GenericDAO.java:89) 
at principal.Main.main(Main.java:34) 
Caused by: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners 
at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:100) 
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:252) 
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1386) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) 
at modelo.util.HibernateUtil.<clinit>(HibernateUtil.java:25) 
... 2 more 
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners 
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) 
... 8 more 

ne sais pas pourquoi je reçois cette exception

principal Classe:

public class Main { 

/** 
* @param args the command line arguments 
*/ 
    public static void main(String[] args) { 
     GenericDAO clienteDAO = new GenericDAO(); 
     List<Cliente> list = clienteDAO.getAll(Cliente.class); 
     System.out.println(list.size()); 
     for(Cliente c : list) 
     {System.out.println("-> " + c.getNombre()); 
     } 
    } 
} 

HibernateUtil Classe:

public class HibernateUtil { 

private static final SessionFactory sessionFactory; 

static { 
    try { 
     // Create the SessionFactory from standard (hibernate.cfg.xml) 
     // config file. 
     sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 
    } catch (Throwable ex) { 
     // Log the exception. 
     System.err.println("Initial SessionFactory creation failed." + ex); 
     throw new ExceptionInInitializerError(ex); 
    } 
} 

public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 
} 

Mapping Class.hbm.xml fichier:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<!-- Generated 21/05/2017 17:46:05 by Hibernate Tools 4.3.1 --> 
<hibernate-mapping> 
<class name="modelo.pojo.Cliente" table="cliente" catalog="basededatosprueba" optimistic-lock="version"> 
    <id name="codigo" type="java.lang.Integer"> 
     <column name="codigo" /> 
     <generator class="identity" /> 
    </id> 
    <property name="nombre" type="string"> 
     <column name="nombre" /> 
    </property> 
    <property name="direccion" type="string"> 
     <column name="direccion" /> 
    </property> 
    <property name="telefono" type="string"> 
     <column name="telefono" /> 
    </property> 
    <property name="cuit" type="string"> 
     <column name="cuit" /> 
    </property> 
    <property name="cp" type="java.lang.Integer"> 
     <column name="cp" /> 
    </property> 
    <property name="saldo" type="java.lang.Double"> 
     <column name="saldo" precision="22" scale="0" /> 
    </property> 
    <property name="deuda" type="java.lang.Double"> 
     <column name="deuda" precision="22" scale="0" /> 
    </property> 
</class> 
</hibernate-mapping> 

mon hibernate.cfg.xml

<hibernate-configuration> 
<session-factory> 
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/basededatosprueba?zeroDateTimeBehavior=convertToNull</property> 
<property name="hibernate.connection.username">root</property> 
<property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property> 
<mapping resource="modelo/pojo/Cliente.hbm.xml"/> 
</session-factory> 
</hibernate-configuration> 

bibliothèques (i ajouter également mise en veille prolongée JPA-2.0-api-1.0 .1.Final.jar téléchargé à partir des commentaires)

libraries

Je ne sais pas pourquoi je reçois cette erreur. J'ai déjà ajouté le hibernate-jpamodelgen-1.2.0.Final.jar si vous le demandiez. J'espère que quelqu'un peut m'aider. Merci

+0

suppose que ce (http://stackoverflow.com/questions/25639515/java-lang-classnotfoundexception-javax-persistence-persistence-cannot-be-found) [post] pourrait être utile pour vous comprendre la solution proposée. –

Répondre

1

Cliquez ci-dessous le lien pour télécharger hibernate-jpa-2.0-api-1.0.1.Final.jar et le mettre dans la bibliothèque du projet, j'espère que votre application fonctionnera bien.

http://repo1.maven.org/maven2/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar

+0

Il a changé l'erreur Création initiale SessionFactory failed.java.lang.NoClassDefFoundError: javax/persistence/NamedStoredProcedureQuery – NicolasB

+0

le pot ci-dessus que je vous ai donné a un pot dépendante .. vérifiez-les dans maven et ajoutez-les à votre repo .. comme je pense que les jars ci-dessous doivent être là hibernate-core, hibernate-validateur, hibernate-commons-annotations, hibernate-jpa-2.0-api et hibernate-entitymanager –