Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
30
respostas

Erro Bad Request

Olá pessoal, estou estudando o curso Spring Boot 3: desenvolva uma API Rest em Java. E no meu trabalho estou (tentando) desenvolvendo uma aplicação para gerir um comércio de cafés. Criei a base de dados em MySql, criei as entities (de acordo com as tabelas), criei os dto's, os repositórios e criei de um controller. Aom tentar acessar a primeira url de cadastro começou a dar erro de Bad Request e não estou conseguindo corrigí-lo. Alguém pode me ajudar, por favor?

30 respostas

Descrição do erro no Insomnia: { "timestamp": "2023-03-03T11:52:07.777+00:00", "status": 400, "error": "Bad Request", "trace": "org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public org.springframework.http.ResponseEntity<com.minascafe.api.responses.Cafe_CocoResponse<com.minascafe.api.dtos.Cafe_CocoDto>> com.minascafe.api.controllers.CafeCocoController.cadastrar(com.minascafe.api.dtos.Cafe_CocoDto,org.springframework.validation.BindingResult) throws java.security.NoSuchAlgorithmException\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:166)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:136)\r\n\tat org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n\tat org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:181)\r\n\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:148)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)\r\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:973)\r\n\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)\r\n\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)\r\n\tat jakarta.servlet.http.HttpServlet.service(HttpServlet.java:731)\r\n\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\r\n\tat jakarta.servlet.http.HttpServlet.service(HttpServlet.java:814)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)\r\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)\r\n\tat org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)\r\n\tat org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)\r\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177)\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\r\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119)\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)\r\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n\tat }

Arquivo Controller:

package com.minascafe.api.controllers;

import java.security.NoSuchAlgorithmException;
import javax.naming.Binding;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.minascafe.api.dtos.Cafe_CocoDto;
import com.minascafe.api.entities.Cafe_Coco;
import com.minascafe.api.responses.Cafe_CocoResponse;
import com.minascafe.api.services.Cafe_Coco_Service;

import jakarta.validation.Valid;

@RestController //Endpoint (página web) de Controller
@RequestMapping("/cadastrar_cafecoco") //Define a url da classe - "mapeando a requisição"
//@CrossOrigin(origins = "*") //Permite que as requisições venham de lugares distintos
public class CafeCocoController {

    public static final Logger log = LoggerFactory.getLogger(CafeCocoController.class); //Log para adicionar entradas no console

    @Autowired
    private Cafe_Coco_Service cafe_Coco_Service;

    /**
     * Cadastra um lote de café em côco no sistema
     * 
     * @param cafe_cocoDto
     * @return ResponseEntity<Response<Cafe_CocoDto>>
     * @throws NoSuckAlgorithmException
     */    

    @PostMapping//Verbo Http de 'Cadastro'
    public ResponseEntity<Cafe_CocoResponse<Cafe_CocoDto>> cadastrar(@Valid @RequestBody Cafe_CocoDto cafe_cocoDto,//RequestBody pega os dados do request e converte em um Dto. @Valid chama a validação que eu criei no Dto.
            BindingResult result) throws NoSuchAlgorithmException{//Exceção da parte de geração de senhas - BindingResult - terá a informação do resultado da validação do Dto.
        System.out.println(cafe_cocoDto);
      log.info("Cadastrando um café em côco: {}", cafe_cocoDto.toString()); //passa os dados que chegaram via Post Request
      Cafe_CocoResponse<Cafe_CocoDto> response = new Cafe_CocoResponse<Cafe_CocoDto>(); //Criando uma instância de Cafe_CocoResponse que será utilizado para retornar os dados. 
      //validarDadosExistentes(cafe_cocoDto, result);
      Cafe_Coco cafe_coco = this.converterDtoParaCafeCoco(cafe_cocoDto);      

      if (result.hasErrors()) { //Se possui erros de validação
          log.error("Erro validando dados de cadastro de café em côco: {}", result.getAllErrors());
          result.getAllErrors().forEach(error -> response.getErrors().add(error.getDefaultMessage()));
          return ResponseEntity.badRequest().body(response);
      }

        this.cafe_Coco_Service.persistir(cafe_coco);
        return ResponseEntity.ok(response);        
    }

    private void validarDadosExistentes(Cafe_CocoDto cafe_CocoDto, BindingResult result) { //Verifica se esse café em côco já existe no banco de dados
        this.cafe_Coco_Service.buscarPorProdutor(cafe_CocoDto.getProdutor())
        .ifPresent(emp -> result.addError/*Adicionando um erro ao result */(new ObjectError("cafe_Coco", "Este café em Côco já existe!")));
    }

    private Cafe_Coco converterDtoParaCafeCoco(Cafe_CocoDto cafe_cocoDto) {
        Cafe_Coco cafe_coco = new Cafe_Coco();
        cafe_coco.setLote(cafe_cocoDto.getLote());
        cafe_coco.setData(cafe_cocoDto.getData());
        cafe_coco.setProdutor(cafe_cocoDto.getProdutor());
        cafe_coco.setQuilos(cafe_cocoDto.getQuilos());
        cafe_coco.setSacos(cafe_cocoDto.getSacos());

        return cafe_coco;
    }
}

Application.properties:

#logging.level.com.minascafe=DEBUG

#MySQL
#Não cria nenhuma entidade no banco, será feito manualmente
spring.jpa.hibernate.ddl-auto=none
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url= jdbc:mysql://localhost:3306/minas_cafe
spring.datasource.username=root
spring.datasource.password=359423

#exibe os comandos SQL

#Exibe as queries executadas pela aplicação Java 
spring.jpa.properties.hibernate.show-sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.type=trace
spring.jpa.show-sql=true

security.basic.enable=false

Oi Edson!

Pelo erro a requisição foi enviada sem o json no insmonia. Manda um print aqui de como como disparou a requisição.

Print do Insomnia: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O problema é no campo data, que está no formato inválido.

O formato correto é: yyyy-mm-dd. Por exemplo: 2022-12-30

Eu ja´ inseri das duas maneiras, mas com a data nesse formato americano exibe um erro diferente: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Manda aqui o seu DTO. A princípio você colocou o @NotEmpty no campo data, mas essa anotação é somente para Strings.

Isso mesmo Rodrigo, coloquei @NotEmpty no dto:

package com.minascafe.api.dtos;

import java.util.Date;
import org.hibernate.validator.constraints.Length;
import jakarta.validation.constraints.NotEmpty;

public class Cafe_CocoDto {

    private int lote;    
    private String produtor;
    private Date data;
    private int sacos;
    private double quilos;

    public Cafe_CocoDto() {        
    }

    public int getLote() {
        return lote;
    }
    public void setLote(int lote) {
        this.lote = lote;
    }

    @NotEmpty(message = "O nome não pode ser vazio.") // Regra de validação - O nome do produtor não pode ser vazio 
    @Length(min = 3, max = 50, message = "O nome do produtor deve conter entre 3 e 40 caracteres.")        
    public String getProdutor() {
        return produtor;
    }
    public void setProdutor(String produtor) {
        this.produtor = produtor;
    }

    @NotEmpty(message = "A data não pode ser vazia.")
    public Date getData() {
        return data;
    }
    public void setData(Date data) {
        this.data = data;
    }
    public int getSacos() {
        return sacos;
    }
    public void setSacos(int sacos) {
        this.sacos = sacos;
    }
    public double getQuilos() {
        return quilos;
    }
    public void setQuilos(double quilos) {
        this.quilos = quilos;
    }    

    @Override
    public String toString() {
        return "Cafe_Coco [lote=" + lote + ", produtor=" + produtor + ", data=" + data
                + ", sacos=" + sacos + ", quilos=" + quilos + ", subproduto=" + "]";
    }    
}
 @NotEmpty(message = "A data não pode ser vazia.")
public Date getData() {
    return data;
}

@NotEmpty é só para String. Troque para @NotNull

Essa questão foi resolvida. Mas agora está gerando outro erro (no Insomnia): { "timestamp": "2023-03-03T17:52:32.069+00:00", "status": 500, "error": "Internal Server Error", "trace": "org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [select c1_0.lote,c1_0.barracao,c1_0.catacao,c1_0.classificacao,c1_0.data,c1_0.lancado,c1_0.meieiro,c1_0.numero_nota,c1_0.observacoes,c1_0.peneira,c1_0.porcentagem_meieiro,c1_0.porcentagem_produtor,c1_0.produtor,c1_0.quilos,c1_0.referencia,c1_0.sacos,c1_0.status,c1_0.subproduto from cad_cafe_coco c1_0 where c1_0.lote=?]\r\n\tat

...

org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:554)\r\n\tat org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116)\r\n\tat org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:92)\r\n\tat org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288)\r\n\tat com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:327)\r\n\tat com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)\r\n\tat org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:90)\r\n\tat org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176)\r\n\t... 134 more\r\n", "message": "could not prepare statement; SQL [select c1_0.lote,c1_0.barracao,c1_0.catacao,c1_0.classificacao,c1_0.data,c1_0.lancado,c1_0.meieiro,c1_0.numero_nota,c1_0.observacoes,c1_0.peneira,c1_0.porcentagem_meieiro,c1_0.porcentagem_produtor,c1_0.produtor,c1_0.quilos,c1_0.referencia,c1_0.sacos,c1_0.status,c1_0.subproduto from cad_cafe_coco c1_0 where c1_0.lote=?]", "path": "/cadastrar_cafecoco" }

E no console está gerando o seguinte erro:

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

Deu erro de Table not found. Deve estar sem a migration que cria a tabela.

Ele está dizendo que a tabela 'cad_cafe_coco' não foi encontrada no 'H2', mas eu estou utilizando o MySql. H2 somente no application.properties de teste. Sinceramente, não estou entendendo. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A migration existe Rodrigo:

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

O projeto deve estar rodando com o profile de testes então. Para o projeto, roda novamente e olha no início do log no console que aparece qual o profile ativo.

Defini o profile para "Dev", mas mesmo assim continua apresentando erro: application.properties:

#logging.level.com.minascafe=DEBUG

spring.profiles.active=dev
#MySQL
#Não cria nenhuma entidade no banco, será feito manualmente
spring.jpa.hibernate.ddl-auto=none
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url= jdbc:mysql://localhost:3306/minas_cafe
spring.datasource.username=root
spring.datasource.password=359423

#exibe os comandos SQL

#Exibe as queries executadas pela aplicação Java 
spring.jpa.properties.hibernate.show-sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.type=trace
spring.jpa.show-sql=true

spring.security.enable=false

application-dev.properties:

#MySQL
#Não cria nenhuma entidade no banco, será feito manualmente
spring.jpa.hibernate.ddl-auto=none
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url= jdbc:mysql://localhost:3306/minas_cafe
spring.datasource.username=root
spring.datasource.password=359423

#exibe os comandos SQL

#Exibe as queries executadas pela aplicação Java 
spring.jpa.properties.hibernate.show-sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.type=trace
spring.jpa.show-sql=true

spring.security.enable=false

O console apresenta o seguinte erro:

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

O que eu faço Rodrigo? :(

Manda o início do log na aba console. Na imagem ficou cortado.

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

Oi Edson!

Manda o log do console completo. Em texto mesmo e não print

2023-03-08T09:05:17.906-03:00 INFO 700---[restartedMain] com.minascafe.api.MinasCafeApplication : Starting MinasCafeApplication using Java 17.0.6 with PID 700 (C:\Users\Edson\OneDrive\Documentos\workspace-spring-tool-suite-4-4.17.2.RELEASE\MinasCafe\target\classes started by Edson in C:\Users\Edson\OneDrive\Documentos\workspace-spring-tool-suite-4-4.17.2.RELEASE\MinasCafe)
2023-03-08T09:05:17.922-03:00 INFO 700---[restartedMain] com.minascafe.api.MinasCafeApplication : No active profile set, falling back to 1 default profile: "default"
2023-03-08T09:05:18.061-03:00 INFO 700---[restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2023-03-08T09:05:18.062-03:00 INFO 700---[restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2023-03-08T09:05:19.238-03:00 INFO 700---[restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-03-08T09:05:19.381-03:00 INFO 700---[restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 124 ms. Found 5 JPA repository interfaces.
2023-03-08T09:05:20.393-03:00 INFO 700---[restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-03-08T09:05:20.414-03:00 INFO 700---[restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-03-08T09:05:20.414-03:00 INFO 700---[restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.5]
2023-03-08T09:05:20.535-03:00 INFO 700---[restartedMain] o.a.c.c.C. [Tomcat].[localhost].[/]    : Initializing Spring embedded WebApplicationContext
2023-03-08T09:05:20.536-03:00 INFO 700---[restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2472 ms
2023-03-08T09:05:20.586-03:00 INFO 700---[restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2023-03-08T09:05:20.921-03:00 INFO 700---[restartedMain] com.zaxxer.hikari.pool.HikariPool     : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:7d5f1751-6272-4916-8b67-67f1848bd46c user=SA
2023-03-08T09:05:20.924-03:00 INFO 700---[restartedMain] com.zaxxer.hikari.HikariDataSource     HikariPool-1 - Start completed.
2023-03-08T09:05:20.942-03:00 INFO 700---[restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:7d5f1751-6272-4916-8b67-67f1848bd46c'
2023-03-08T09:05:21.166-03:00 INFO 700---[restartedMain] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 9.5.1 by Redgate
2023-03-08T09:05:21.166-03:00 INFO 700---[restartedMain] o.f.c.internal.license.VersionPrinter : See what's new here: https://flywaydb.org/documentation/learnmore/releaseNotes#9.5.1
2023-03-08T09:05:21.166-03:00 INFO 700---[restartedMain] o.f.c.internal.license.VersionPrinter   :
2023-03-08T09:05:21.191-03:00 INFO 700---[restartedMain] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:h2:mem:7d5f1751-6272-4916-8b67-67f1848bd46c (H2 2.1)
2023-03-08T09:05:21.327-03:00 INFO 700---[restartedMain] o.f.core.internal.command.DbValidate :  Successfully validated 1 migration (execution time 00:00.029s)
2023-03-08T09:05:21.339-03:00 INFO 700---[restartedMain] o.f.c.i.s.JdbcTableSchemaHistory   : Creating Schema History table "PUBLIC"."flyway_schema_history" ...
2023-03-08T09:05:21.436-03:00 INFO 700---[restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "PUBLIC": << Empty Schema >>
2023-03-08T09:05:21.471-03:00 INFO 700---[restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "PUBLIC" to version "01 - create tables"
2023-03-08T09:05:21.482-03:00 ERROR 700---[restartedMain] o.f.core.internal.command.DbMigrate : Migration of schema "PUBLIC" to version "01 - create tables" failed! Please restore backups and roll back database and code!
2023-03-08T09:05:21.492-03:00 700---[restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Migration V01__create_tables.sql failed
---------------------------------------
SQL State  : 42001
Error Code : 42001

Você consegue compartilhar o seu projeto? Só analisando o codigo completo para entender o problema

.....

Compartilhar pelo github Rodrigo?

Aqui o projeto funcionou ok.

Você precisa remover essa propriedade dos seus arquivos properties:

spring.profiles.active=dev

E precisa alterar suas classes de testes automatizados para utilizar as anotações do JUnit 5 e não do JUnit 4

Rodrigo, devo remover essa propriedade (spring.profiles.active=dev) de todos meus arquivos properties?

As anotações que devo alterar seriam @Before por @BeforeEach e @After por @AfterEach, por exemplo?

Curioso que aqui pra mim continua apresentando erro.

solução!

Isso, remove ou comenta essa propriedade de todos os properties.

As anotações de testes são essas mesmo e também trocar de @RunWith para @ExtendWith(SpringExtension.class)

Funcionou certinho aqui Rodrigo. Obrigado por seu auxílio e paciência!