3
respostas

Erro ao executar o java -jar no fedora 28

Boa tarde, venho tentando executar este arquivo ja faz algum tempo e não consigo... abaixo as informações relacionadas ao java e mysql instalados na maquina.

mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| innodb_version          | 8.0.12                       |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| tls_version             | TLSv1,TLSv1.1,TLSv1.2        |
| version                 | 8.0.12                       |
| version_comment         | MySQL Community Server - GPL |
| version_compile_machine | x86_64                       |
| version_compile_os      | Linux                        |
| version_compile_zlib    | 1.2.11                       |
+-------------------------+------------------------------+
9 rows in set (0.00 sec)
[ricardocorrent@localhost instalura] $ javac -version
javac 1.8.0_181
[ricardocorrent@localhost instalura] $ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
3 respostas

Fala Ricardo, tudo bem ?

Você pode postar aqui os logs de inicialização do api Java (quando roda o comando java -jar instalura.jar) ?

Opa, claro! Falha minha.

https://gist.github.com/ricardocorrent/355e050893fd179c021aa0f92ef0046d

Tive que postar no gist, foi meio longo!! Será que pode ser a versão do meu banco?

Fala Ricardo, tudo bem ?

Provavelmente é isso mesmo. A app não está conseguindo inicializar o pool de conexões com o banco.

Antes de pensar sobre problema com versão faça um simples teste. Rode o comando java -jar só que passando a senha do seu banco de dados. (Como a senha padrão da api está sendo passada como vazia, pode estar aí um problema também). Para passar sua senha via comando faça assim java -Dspring.datasource.password=sua-senha-aqui -jar instalura.jar

Caso persista o problema, aí já vai ser um pouco mais complicado ...

Você tem o mysql 8 na sua máquina que por padrão trabalha com um Driver no java que não é compatível com a versão que a api do instalura usa. A api utiliza um Driver mysql compatível até a versão 5.7, mas não com a versão mais recente que é a 8.x.

Você pode escolher entre três possibilidades pra acessar a api.

(acessando remoto)

(acessando local)

  • Instalar uma versão do mysql compatível com o Driver que a aplicação da API utiliza. Exemplo MySQL 5.6 ou 5.7 na sua máquina

ou

1) Adicionar a dependência do driver compatível com a ultima versão do MySQL no arquivo pom.xml

...
<dependencies>

        ...
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.12</version>
        </dependency>
        ...

</dependencies>
...

2) Alterar o nome do recurso do Driver no arquivo src/main/resources/application.properties

Onde está ..

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Fica ..

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

Você também pode aproveitar para trocar a senha do banco (se necessário) direto nesse arquivo, na chave spring.datasource.password=sua-senha.

Espero ter ajudado. Abraço!