Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
Bonjour à tous,
Je suis débutant en JEE et je travaille sur un projet dans lequel il y a ma table utilisateur. Je voudrais afficher les données de cette table mais j'ai une exception in thread "main" java.lang.NoClassDefFoundError et les solutions que j'ai trouvé ne marche pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| oct. 15, 2023 11:05:39 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
name: gestionplateformecollaborative
...]
oct. 15, 2023 11:05:40 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.6.Final}
oct. 15, 2023 11:05:40 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000205: Loaded properties from resource hibernate.properties: {jakarta.persistence.jdbc.driver=com.mysql.jdbc.Driver, hibernate.dialect=org.hibernate.dialect.MySQLDialect, jakarta.persistence.jdbc.url=jdbc://localhost:3306/gestionplateformecollaborative, jakarta.persistence.jdbc.user=root, hibernate.bytecode.use_reflection_optimizer=false, jakarta.persistence.schema-generation.database.action=create, jakarta.persistence.jdbc.password=""}
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43)
at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174)
at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at com.gestion.Console.main(Console.java:18)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 12 more |
Class main
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package com.gestion;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import com.metier.Utilisateur;
public class Console {
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = null;
EntityManager entityManager = null;
entityManagerFactory = Persistence.createEntityManagerFactory("gestionplateformecollaborative");
entityManager = entityManagerFactory.createEntityManager();
List<Utilisateur> utilisateurs = entityManager.createQuery( "from utilisateur", Utilisateur.class ).getResultList();
for (Utilisateur user : utilisateurs) {
System.out.println( user );
}
}
} |
Class persistence
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <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="gestionplateformecollaborative">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.metier.Utilisateur</class>
<properties>
<!-- Database connection settings -->
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/gestionplateformecollaborative;DB_CLOSE_DELAY=-1" />
<property name="jakarta.persistence.jdbc.user" value="root" />
<property name="jakarta.persistence.jdbc.password" value="" />
<!-- Automatically export the schema -->
<property name="jakarta.persistence.schema-generation.database.action" value="create" />
<!-- Echo all executed SQL to console -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.highlight_sql" value="true" />
</properties>
</persistence-unit>
</persistence> |
Class Utilisateur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| package com.metier;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity @Table( name ="Utilisateur" )
public class Utilisateur {
@Id @GeneratedValue( strategy=GenerationType.IDENTITY )
private int id;
private String nom;
private String prenom;
private String email;
private String photo;
public Utilisateur(){
this("unknow", "unknow", "unknow", "unknow");
}
public Utilisateur(String pNom, String pPrenom, String pEmail, String pPhoto) {
this.setNom( pNom );
this.setPrenom( pPrenom );
this.setEmail( pEmail );
this.setPhoto( pPhoto );
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
} |