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

Informar libs externas para rodar junto com o bootJar (fatJar run)

Pessoal, alguém pode me dar alguma luz? Estou usando SpringBoot2 com Gradle e utilizando a task bootJar para rodar o server. Esse server possui uma implementação de um projeto jar que possui a interface IConnection ok...

  • Existem dois projetos separados que são jars que implementam essa interface, esses dois projetos ficam em uma pasta x no S.O.
  • Ao rodar o server pelo IntelliJ eu instancio uma classe desses projetos que estão na pasta x e funciona de boa. Ou seja, o server e os projetos conhecem essa interface.
  • O problema esta ocorrendo é quando eu gero o bootJar e o server não reconhece as interfaces, dando erro dentro dos jars da pasta X.
  • Já tentei muita coisa, alguém indica alguma coisa
 IConnection implementation class not found in C:\Users\x\Documents\connectors\conector-1.jar
  • Lembrando que rodando pelo IntelliJ vai sem problema
3 respostas

O problema são as implementações da interface de IConnection. Veja se no seu jar está indo todas as classes que você esperava, provavelmente o problema está no build do jar.

Ele possui a implementação que precisa, que é o projeto da interface e também o codigo que faz o fatjar

from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }

Na checagem do jar as classes estão lá só que ao fazer o classloader no lado do server via bootJar ele reclama, só que rodando via intelliJ vai. Fiz o teste tambem via bootWar também da o mesmo erro.

solução!

Como imaginei era problema de classpath