2
respostas

APPLICATION FAILED TO START

Depois de realizar as configurações do application, CI e CD obtenho esse essa falha na inicialização do spring, segue o log junto com os arquivos da config

  • Log do Heroku
    Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
    2022-10-03T19:58:50.071608+00:00 app[web.1]: 2022-10-03 19:58:50.071  INFO 3 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
    2022-10-03T19:58:50.119427+00:00 app[web.1]: 2022-10-03 19:58:50.119  INFO 3 --- [           main] ConditionEvaluationReportLoggingListener : 
    2022-10-03T19:58:50.119428+00:00 app[web.1]: 
    2022-10-03T19:58:50.119429+00:00 app[web.1]: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    2022-10-03T19:58:50.159002+00:00 app[web.1]: 2022-10-03 19:58:50.158 ERROR 3 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 
    2022-10-03T19:58:50.159003+00:00 app[web.1]: 
    2022-10-03T19:58:50.159004+00:00 app[web.1]: ***************************
    2022-10-03T19:58:50.159008+00:00 app[web.1]: APPLICATION FAILED TO START
    2022-10-03T19:58:50.159008+00:00 app[web.1]: ***************************
    2022-10-03T19:58:50.159008+00:00 app[web.1]: 
    2022-10-03T19:58:50.159009+00:00 app[web.1]: Description:
    2022-10-03T19:58:50.159009+00:00 app[web.1]: 
    2022-10-03T19:58:50.159010+00:00 app[web.1]: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    2022-10-03T19:58:50.159010+00:00 app[web.1]: 
    2022-10-03T19:58:50.159011+00:00 app[web.1]: Reason: Failed to determine a suitable driver class
    2022-10-03T19:58:50.159011+00:00 app[web.1]: 
    2022-10-03T19:58:50.159011+00:00 app[web.1]: 
    2022-10-03T19:58:50.159011+00:00 app[web.1]: Action:
    2022-10-03T19:58:50.159012+00:00 app[web.1]: 
    2022-10-03T19:58:50.159012+00:00 app[web.1]: Consider the following:
    2022-10-03T19:58:50.159012+00:00 app[web.1]:     If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    2022-10-03T19:58:50.159013+00:00 app[web.1]:     If you have database settings to be loaded from a particular profile you may need to activate it (the profiles prod are currently active).
    2022-10-03T19:58:50.159013+00:00 app[web.1]: 
2 respostas
  • application-prod
spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://au77784bkjx6ipju.cbetxkdyhwsb.us-east-1.rds.amazonaws.com:3306/w38hw4iile8ek4z3
    username: ${MYSQL_USERNAME}
    password: ${MYSQL_PASSWORD}
  jpa:
    properties:
      hibernate:
        show_sql: true
        format_sql: true

  cache:
    type: redis
  redis:
    host: redis-12634.c91.us-east-1-3.ec2.cloud.redislabs.com:12634
    port: 12634
    password: ${REDIS_PASSWORD}
  mail:
    host: smtp.mailtrap.io
    port: 2525
    username: 4ff415c1daa31e
    password: 641b5ef11cf7d8
    properties:
      mail:
        transport:
          protocol: smtp
        debug: true
        smtp:
          auth: true
          starttls:
            enable: true
jwt:
  secret: secret
  • application-dev
spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/forum?createDatabaseIfNotExist=true
    username: root
    password: root
  jpa:
    properties:
      hibernate:
        show_sql: true
        format_sql: true
  cache:
    type: redis
  redis:
    host: localhost
    port: 6379
  mail:
    host: smtp.mailtrap.io
    port: 2525
    username: 4ff415c1daa31e
    password: 641b5ef11cf7d8
    properties:
      mail:
        transport:
          protocol: smtp
        debug: true
        smtp:
          auth: true
          starttls:
            enable: true
jwt:
  secret: secret
  • application
spring:
  profiles:
    active: @activatedProperties@
  • CD
name: CD

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11

      - name: Cache Maven packages
        uses: actions/cache@v1
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2

      - name: Clean
        run: mvn clean

      - name: Package
        run: mvn package

      - name: Login to Heroku Container registry
        env:
          HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
        run: heroku container:login

      - name: Build and Push
        env:
          HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
        run: heroku container:push -a ${{ secrets.HEROKU_APP_NAME }} web

      - name: Release
        env:
          HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
        run: heroku container:release -a ${{ secrets.HEROKU_APP_NAME }} web

Olá, Luiz!

Pelo log de erro que você compartilhou, parece que o Spring não conseguiu configurar um DataSource adequado para a sua aplicação. O erro específico diz que o atributo 'url' não foi especificado e nenhum banco de dados embutido pôde ser configurado.

Uma possível solução para esse problema é verificar se você configurou corretamente as propriedades do banco de dados no seu arquivo de configuração do Spring. Certifique-se de que o atributo 'url' está definido corretamente com as informações de conexão do seu banco de dados.

Além disso, verifique se você adicionou a dependência correta para o driver do banco de dados que está utilizando. O erro menciona que não foi possível determinar uma classe de driver adequada, o que pode indicar que a dependência do driver não está presente no seu projeto.

Se você estiver usando um banco de dados embutido, como o H2, HSQL ou Derby, verifique se a dependência do banco de dados está presente no seu classpath.

Por fim, verifique se você ativou corretamente o perfil de configuração necessário para carregar as configurações do banco de dados. O log menciona que os perfis 'prod' estão atualmente ativos, então verifique se você precisa ativar algum outro perfil específico.

Espero que essas sugestões possam te ajudar a resolver o problema. Se tiver mais alguma dúvida, é só me dizer!

Espero ter ajudado e bons estudos!