Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException e MySql

opa galera, então eu tô com um problema aqui, esta aparecendo a seguinte exception

Aug 30, 2018 5:04:44 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
    name: hello-world2
    ...]
Aug 30, 2018 5:04:45 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.5.Final}
Aug 30, 2018 5:04:45 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
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:79)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at br.com.alura.hibernate.ContaTeste.main(ContaTeste.java:15)
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)
    ... 12 more

detalhe eu estou utilizando o hsql pois eu não sei usar o mysql, é o mesmo do último curso,ai eu fiz todas as trocas aqui no persistence.xml

<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">
 <!--  unidade de persistencia com o nome hello-world  -->
<persistence-unit name="hello-world2">
 <!--  Implementação do JPA, no nosso caso Hibernate  -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
 <!--  Aqui são listadas todas as entidades  -->
<class>br.com.alura.hibernate.modelo.Conta</class>
<properties>
 <!--  Propriedades JDBC  -->
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost/"/>
<property name="javax.persistence.jdbc.user" value="SA"/>
<property name="javax.persistence.jdbc.password" value=""/>
 <!--  Configurações específicas do Hibernate  -->
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
2 respostas
solução!

Oi João,

A partir do Java 9 entrou um novo sistema do módulos no mundo Java. A principio uma boa ideia, no entanto não todos os módulos são carregados por padrão.

Em outras palavras, o JaxB vem junto com o JRE mas não é carregado automaticamente. Como o Hibernate acha que o modulo foi carregado (como era antes), vc recebeu o erro NoClassDefFoundError.

A noticia boa é que vc pode pedir pra a JVM que ela carregue esse modulo e tudo volte a funcionar. Vou ser "malandro" e passar um artigo de um instrutor da caelum que explica como resolver e adicionar o modulo:

https://alexandreaquiles.com.br/2017/10/13/sofrencia-com-java-9-cade-meu-jaxb/

Tudo bem?

abs, Nico

Olá Professor,Boa tarde

Então, eu fiz ,oque foi indicado no site mas ainda assim eu continuo com o problema mesmo depois de adicionar as dependências no maven, e eu também adicionei a dependência do hsql, pois eu ainda não sei usar o mysql(utilizo linux),vou abrir um novo tópico em seguida,mas eu continuo tendo os mesmos problemas,

Por favor, olhe meu código no github: https://github.com/JoaoMirandaXP/java-JPA2-hibernate

e a exception que eu estou recebendo agora é esse:

<!-- código omitido-->
WARN: SQL Error: -458, SQLState: S1000
Aug 31, 2018 2:04:24 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: General error: database alias does not exist
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.exception.GenericJDBCException: Error calling Driver#connect

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software