Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Jar da api lançando exception

Ao tentar executar o jar recebo a seguinte exception:

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104)
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71)
        at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:205)
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
        at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
        at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
        ... 22 more

O problema, provavelmente é que para o curso a senha do root do MySQL está configurada em branco, e no meu MySQL a senha do root está definida.

Tem como disponibilizar o código fonte da api pra eu alterar e recompilar ?

SUGESTÃO: Incluir na aula de instalação e configuração do MySQL um último passo onde será criado um usuário com uma senha em específico no MySQL e recompilar e distribuir o jar já com esse usuário definido... assim esse tipo de erro poderia ser evitado:

EXEMPLO:

mysql> CREATE USER 'novousuario'@'%' IDENTIFIED BY 'suaSenha';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'novousuario'@'%';

Grato

2 respostas
solução!

Resolvido:

  1. Clonei o fonte: https://github.com/alberto-alura/cdcadmin-api.

  2. Importei no Eclipse como maven project

  3. Editei o arquivo src/main/resources/application.properties:

#spring boot properties
#Thu Jul 21 15:01:47 EDT 2016
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://127.0.0.1/cdc_react?createDatabaseIfNotExist=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.connection-test-query="SELECT 1"
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true

Alterei essa linha colocando a senha do meu banco de dados:

spring.datasource.password=root
  1. Fiz um build no eclipse para testar

  2. Na linha de comando executei

mvn package

Esse comando gerar um jar no diretório target, daí foi só copiar o jar pra uma outra pasta e executar... molezinha...

No entanto fica o reforço de uma recomendação/sugestão:

  1. Alterar o arquivo application.properties para:
#spring boot properties
#Thu Jul 21 15:01:47 EDT 2016
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=alura
spring.datasource.password=alura
spring.datasource.url=jdbc:mysql://127.0.0.1/cdc_react?createDatabaseIfNotExist=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.connection-test-query="SELECT 1"
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
  1. Nessa aula (https://cursos.alura.com.br/course/react/task/19739) acrescentar:

  2. Criação de um usuário para a aplicação:

mysql> CREATE USER 'alura'@'%' IDENTIFIED BY 'alura';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'alura'@'%';

Nem todo mundo manja de java ;D

Atenciosamente/Grato

vlw pelo post, me salvou aqui, hahaha

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