Erro java.lang.ClassNotFoundException

4 respostas
T

óla pessoal, não estou conseguindo solucionar um erro de java.lang.ClassNotFoundException!!!

o eclipse diz que o erro é na linha 13 da classe Main!

essa é a mensagem de erro!

ago 18, 2018 5:57:30 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
name: hibernatejpa
…]
ago 18, 2018 5:57:30 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.3.Final}
ago 18, 2018 5:57:30 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.hibernate.boot.spi.XmlMappingBinderAccess.(XmlMappingBinderAccess.java:43)
at org.hibernate.boot.MetadataSources.(MetadataSources.java:86)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:212)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(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:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at br.com.cursodevmedia.hibernate.Main.main(Main.java:13)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

Aqui a classe Main

package br.com.cursodevmedia.hibernate;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class Main {

public static EntityManagerFactory entityManagerFactory;

public static void main(String[] args) {

	entityManagerFactory = Persistence.createEntityManagerFactory("hibernatejpa");
	
	Lembretes lembrete= new Lembretes();
	lembrete.setTitulo("comprar pão");
	lembrete.setDescricao("hoje, 14:30");
	
	EntityManager em = entityManagerFactory.createEntityManager();
	
	
	try {
		em.getTransaction().begin();
		em.remove(lembrete);
		em.getTransaction().commit();
	} catch (Exception e) {
		em.getTransaction().rollback();
		
		System.out.println("Delete: "+e.getMessage());
	}finally {
		em.close();
	}
}

}

Agradeço caso alguém possa me ajudar!

4 Respostas

R

Olá, Thiago!

Verifique o atributo name no seu arquivo *.xml (persistence-unit). O nome está igual a “hibernatejpa”?

Também veja se este artigo ajuda: https://www.devmedia.com.br/introducao-ao-entitymanager/5206

T

oi Rafael, obrigado pela atenção!

Esta igual sim, li o artigo que me mandou mas não consegui encontrar algum erro!

essa é minha classe peesistence.xml.

<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="hibernatejpa" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>	

	<class>br.com.cursodevmedia.hibernate</class>


	<properties>
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hibernatejpa?createDatabaseIfNotExist=true"/>
		<property name="javax.persistence.jdbc.user" value="root"/>
		<property name="javax.persistence.jdbc.password"  value="th10vrs"/>
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdb.Driver"/>
	
	
		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL57Dialect"/>
		<property name="hibernate.show_sql" value="true"/>
		<property name="hibernate.format_sql" value="true"/>
		<property name="hibernate.hbm2ddl.auto" value="update"/>
	
	</properties>

</persistence-unit>
R

Olá, Thiago!

Outra possibilidade de verificação: no caso de estar usando Java 9 ou superior, pode olhar na configuração do “module-info.java”. Devido a modularização da JVM, à partir do Java 9, pode ser que a configuração do “module-info.java” não esteja liberando o acesso um componente, causando o erro.

Tem uma discussão interessante sobre esse erro nesse link, que talvez ajude: https://github.com/rest-assured/rest-assured/issues/925

C

Se fosse agora, eu sugeria modificar com.mysql.jdbc.Driver Tem apenas com.mysql.jdb.Driver

Criado 18 de agosto de 2018
Ultima resposta 3 de set. de 2020
Respostas 4
Participantes 3