1
resposta

A atualização que passaram do spring fox não está funcionando

Oi gente, segui passo a passo da recomendação do curso sobre o monitoramento da api com springfox, só que a versão que passaram no curso o 8, está dando erro nessa classe SpringFoxConfig.

@Bean
    public InitializingBean removeSpringfoxHandlerProvider(DocumentationPluginsBootstrapper bootstrapper) {
        return () -> bootstrapper.getHandlerProviders().removeIf(WebMvcRequestHandlerProvider.class::isInstance);
    }

E também nesse método:

  @Bean
    public RequestHandlerProvider customRequestHandlerProvider(Optional<ServletContext> servletContext, HandlerMethodResolver methodResolver, List<RequestMappingInfoHandlerMapping> handlerMappings) {
        String contextPath = servletContext.map(ServletContext::getContextPath).orElse(ROOT);
        return () -> handlerMappings.stream()
                .filter(mapping -> !mapping.getClass().getSimpleName().equals("IntegrationRequestMappingHandlerMapping"))
                .map(mapping -> mapping.getHandlerMethods().entrySet())
                .flatMap(Set::stream)
                .map(entry -> new WebMvcRequestHandler(contextPath, methodResolver, tweakInfo(entry.getKey()), entry.getValue()))
                .sorted(byPatternsCondition())
                .collect(toList());
    }

    RequestMappingInfo tweakInfo(RequestMappingInfo info) {
        if (info.getPatternsCondition() == null) return info;
        String[] patterns;
        patterns = info.getPatternsCondition().getPatternValues().toArray(String[]::new);
        return info.mutate().options(new RequestMappingInfo.BuilderConfiguration()).paths(patterns).build();
    }

Precisamente o que está dando erro é o getHandlerProviders() e o WebMvcRequestHandler(contextPath, methodResolver, tweakInfo(entry.getKey()), entry.getValue())), está falando nesse último que esperava 3 argumentos e foi passado 4. Será que tem a ver com a troca de versão no pom? Testei com a versão passada no vídeo 2.1.4 e 2.1.5 e a atualização atual que é a 2.7.5. A versão do java testei com a 8, 11 e 18 e também não deu certo. Alguém sabe o que seria? Obrigada!

1 resposta

Boa noite Samantha.

Procurei essas classes dentro do curso e acabei por não encontrar. Testei o código do projeto do caminho https://cursos.alura.com.br/course/spring-boot-seguranca-cache-monitoramento/task/57430 e funcionou. Queria confirmar contigo se você está utilizando a última versão do curso ou alguma anterior (vi que a última versão é 11/11/2022)

Bons estudos!!