4
respostas

Problemas com lib de envio de emails

Bom dia, Teve um problema com a lib de envio de emails. Para o spring-boot usei a versão mais nova, 1.4.3.RELEASE. Ao importar a lib, não houve nenhum problema, porém na hora de criar o objeto, o IDE acusava erro.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project listavip: Compilation failure [ERROR] /home/uri/Desenvolvimento/alura/springboot/src/main/java/br/com/alura/springboot/listavip/controllers/ConvidadoController.java:[34,50] package br.com.alura.springboot.enviadorEmail does not exist

    public String salvar(Convidado convidado) {
        repository.save(convidado);
        new br.com.alura.springboot.enviadorEmail.EnviadorEmailService().enviar(convidado.getNome(), convidado.getEmail());
        return "redirect:listaconvidados";
    }

Depois de uma briga feia com o spring, resolvi alterar a versão do spring da lib para a 1.3.8.RELEASE. Adivinha? Sim, funcionou... Alguém sabe me dizer o que mudou na versão 1.4.3.RELEASE?

Obrigado!

4 respostas

Bom dia Oriol,

Teremos que olhar com mais cuidado na documentação do spring. Acontecem algumas coisas em relação a isso quando usamos Spring Boot.

Fundamentalmente o Spring Boot é um projeto que prega "Convention over configuration", o que nos proporciona ter uma séries de questões como gestão das dependências de libs abstraída pelo próprio framework. Algumas vezes, quando temos atualizações do framework ele convenciona atualizações também em bibliotecas dependentes que utilizamos, o que pode impactar em pequenos conflitos com versões anteriores de alguma libs importadas. O ideal é sempre contar com o suporte atual do projeto e para isso a documentação pode ajudar a entender as mudanças e corrigir esses problemas de compatibilidade.

Espero ter ajudado. Pesquisarei mais a respeito e posto aqui caso tenha novidades.

Abraço.

Percebi que você instancia o Service de envio de email dentro do método. Verifique se não é possível deixar o container do Spring responsável pelo ciclo de vida desse objeto. Assim pode receber via injeção de dependências nas classes onde precisar.

Opa Rafael, bom dia. Desculpa a demora. Tentei mesmo tirar o Service. O problema não é isso. O que parece é que ele tenta procurar a classe dentro do projeto e não dentro da lib. Acredito que o problema seja no empacotamento, pois o IDE autocompleta a classe/pacote mas quando compila, seja pelo IDE ou por fora via maven, tem o mesmo problema. Basicamente, fiz o post por se alguém está batendo a cabeça igual rsrsrs Obrigado pela ajuda!

No meu projeto também só funcionou quando mudei a versão do Spring para 1.3.8, tentei várias configurações diferentes com versões mais recentes, mas nada funcionou só a mudança para essa versão mais antiga mesmo!

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