Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Problema para rodar api no Mac

Não estou conseguindo rodar a api com o comando java -jar .cdcreact.jar. Verifiquei tudo, banco rodando e sem senha, java instalado, maven instalado, pasta .m2 na raiz do usuário com o settings.xml dentro, já até até troquei de terminal e nada funciona, acredito que seja alguma incompatibilidade da api com o mac ou algo que falta instalar. Alguém poderia me ajudar, estou empacado nessa tarefa já tem mais de um mês?

2017-11-16 16:02:03.872 ERROR 1591 --- [main] o.s.boot.SpringApplication : Application startup failed

Segue o link do erro completo no gist: https://gist.githubusercontent.com/grilomatheus/907430f3841952b5d4b773407e0b2b73/raw/c5997723a46b2502e67b5ba019e1042519c3c7ff/cdcreact.jar

11 respostas

Fala, Matheus.

Qual versão do Java você tem instalada na sua máquina? É o Java 9?

Para saber, faça em um Terminal:

java -version

Se sim, desinstale e instale o Java 8!


Porque suspeito disso?

O stack trace que você enviou mostra lá na causa:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
    at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)
    at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:120)
    at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:96)
    at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:31)
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
    ... 66 more

Se você olhar, a classe que deu erro foi a Version na linha 36:

org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)

Mais pra cima, dá pra ver que o erro acontece em:

~[hibernate-validator-5.2.2.Final.jar!/:5.2.2.Final]

Essa versão do Hibernate Validator, que é usada pelo curso, só é compatível com o Java 8.


Aprofundando mais, esse código na versão 5.2.2.Final está de um jeito e, recentemente, mudaram o código para dar suporte ao Java 9, creio eu.

Olá Alexandre é o Java 9

matheusgrilo@Workstation:Components $[Matheus] java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

Então, Matheus.

É melhor usar o Java 8 por enquanto... Chato, né? :(

Mas o Java 9 foi lançado em Set/2017 e várias bibliotecas quebraram.

Você sabe como desinstalar o Java 9 e instalar o Java 8?

Então Alexandre. Troquei a versão do Java para a versão 8 e continua com exato o mesmo problema. Muito triste isso e não sei se sou só eu que estou passando por esse problema porque está acontecendo algo na minha máquina ou se poucas pessoas que fazem esse curso usam mac.

Matheus,

A nossa área tem dessas, né? Mas vai rolar!

O que acontece quando você abre um Terminal e dá:

java -version

Deveria dar algo como:

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

Sim, dá justamente isso.

O erro não mudou?

Um colega aqui rodou no Mac e deu certinho. Rodei no meu Ubuntu e também foi.


Uma maneira de garantir que você tá com o Java 8 é a seguinte:

echo "export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home" >> ~/.bash_profile

Aí você tem que trocar a versão do seu Java, colocando o diretório apropriado.

Ah, Matheus!

Só uma coisa: você pode usar o seguinte endereço: https://cdc-react.herokuapp.com/api/autores

Tá na "nuvem"! hehe

Aí, você não precisa instalar a API localmente.

Basta trocar toda referência a localhost:8080 por cdc-react.herokuapp.com.

Ok. Vou usar o do heroku. Você teria também o link das APIs dos outros 2 cursos de react? Estou no segundo curso e não tem um link externo que eu possa utilizar. Estou travado.

solução!

Matheus,

No segundo curso tem sim: https://instalura-api.herokuapp.com/

Exemplo de chamada: https://instalura-api.herokuapp.com/api/public/fotos/rafael

Muito obrigado Alexandre. Vou finalmente conseguir dar continuidade ao meu curso.