8
respostas

Tive esse problema quando usei o docker composer

Parameter 0 of constructor in br.com.alura.codechella.infr a.email.EnviadorDeEmailReal required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found. 3700-arquitetura-java-projeto_inicial-app-1 | 3700-arquitetura-java-projeto_inicial-app-1 | 3700-arquitetura-java-projeto_inicial-app-1 | Action: 3700-arquitetura-java-projeto_inicial-app-1 | 3700-arquitetura-java-projeto_inicial-app-1 | Consider defining a bean of type 'org.springframework.mail.javamail.JavaMailSender' in your configuration.

8 respostas

Oi!

Manda aqui o seu docker-compose.yml

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Está certinho.

Manda o app.env então

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Certinho também. Veja se tem o arquivo application-prod.properties no seu projeto e manda ele aqui também.

Estou tendo o mesmo problema:

application-prod.properties:

spring.datasource.url=${DATASOURCE_URL}
spring.datasource.username=${DATASOURCE_USERNAME}
spring.datasource.password=${DATASOURCE_PASSWORD}

spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=false

spring.mail.host=${MAIL_HOST}
spring.mail.username=${MAIL_USER}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.port=587
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

app.security.jwt.secret=${APP_JWT_SECRET}

app.env:

SPRING_PROFILES_ACTIVE=prod
SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/codechella
SPRING_DATASOURCE_USERNAME=codechella_user
SPRING_DATASOURCE_PASSWORD=codechella_pwd
MAIL_HOST=smtp.gmail.com
MAIL_USER=mail_user
MAIL_PASSWORD=mail_pwd
APP_JWT_SECRET=jwt_secret

Docker compose:

version: '3'
services:
  mysql:
    image: mysql:8.0.36
    env_file: ./env/mysql.env
    volumes:
      - ./mysql-data:/var/lib/mysql
    restart: unless-stopped
    healthcheck:
      test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
      interval: 5s
      timeout: 5s
      retries: 10

  app:
    build:
      context: .
    env_file: ./env/app.env
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy

volumes:
  mysql-data:

Estou tendo o mesmo problema:

app-1 |*************************** app-1 | APPLICATION FAILED TO START app-1 | *************************** app-1 | app-1 | Description: app-1 | app-1 | Parameter 0 of constructor in br.com.alura.codechella.infra.email.EnviadorDeEmailReal required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found. app-1 | app-1 | app-1 | Action: app-1 | app-1 | Consider defining a bean of type 'org.springframework.mail.javamail.JavaMailSender' in your configuration.

Não vi isso respondido em nenhuma das questões do forum.

Achei uma solução: @Autowired na final JavaMailSender emailSender da classe EnviadorDeEmailReal.