Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro: No static resource swagger-ui.html.

Quando tento acessar a url do swagger: http://localhost:8080/swagger-ui.html , recebo este erro: "Erro: No static resource swagger-ui.html." e inspecionando a pagina no console:

GET http://localhost:8080/swagger-ui.html 500 (Internal Server Error) favicon.ico:1

GET http://localhost:8080/favicon.ico 500 (Internal Server Error)

Estou utilizando o swagger na versão 2.2.0:

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
            <version>2.2.0</version>
        </dependency>

mas o mesmo erro acontece na versão 2.1.0.

Acessando a url: http://localhost:8080/v3/api-docs não tenho problemas.

Ao tentar corrigir o erro e pesquisando na internet coloquei as seguintes propriedades no meu app.properties:

springdoc.swagger-ui.protocol=https
spring.mvc.static-path-pattern=/swagger*
springdoc.swagger-ui.path=/swagger-ui.html

Vou colocar o link do meu repositório só por precaução: https://github.com/mdeiroslucas/tarefas-challenger

2 respostas

Olá, Lucas!

Pelo que entendi, você está enfrentando um erro ao tentar acessar a URL do Swagger em seu projeto Spring Boot. O erro que você mencionou é "Erro: No static resource swagger-ui.html".

Esse erro pode ocorrer quando o recurso swagger-ui.html não está sendo encontrado no caminho especificado. Uma possível solução para esse problema é verificar se a dependência do SpringDoc está configurada corretamente em seu projeto.

No seu arquivo pom.xml, você está utilizando a versão 2.2.0 do springdoc-openapi-starter-webmvc-api. No entanto, você também mencionou que o mesmo erro ocorre na versão 2.1.0.

Uma alternativa é tentar utilizar uma versão mais recente da biblioteca, como a 1.5.2, que é a versão mais recente disponível no momento. Você pode atualizar a dependência no seu arquivo pom.xml para a seguinte configuração:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.5.2</version>
</dependency>

Além disso, você mencionou que adicionou algumas propriedades no seu arquivo app.properties para tentar corrigir o erro. No entanto, essas propriedades não parecem estar relacionadas ao problema em questão. As propriedades que você adicionou estão relacionadas à configuração do Swagger UI, mas o erro que você está enfrentando é relacionado à falta do recurso swagger-ui.html.

Portanto, sugiro que você verifique se a dependência do SpringDoc está configurada corretamente e tente atualizá-la para a versão mais recente. Além disso, verifique se o recurso swagger-ui.html está presente no caminho especificado.

Espero ter ajudado e bons estudos!

solução!

Obrigado, Renan, por tentar ajudar.

Pelo que eu vi, essa dependência, springdoc-openapi-ui, só funciona para versões do Spring: 2.x ou menor. De qualquer forma, adicionei essa dependência e outra cuja versão é 1.7.0, e ambas não funcionaram.

Pronto, enquanto estava digitando este post, consegui descobrir a razão do problema e a solução.

Quando estava adicionando as dependências, por equívoco, eu adicionei esta:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
    <version>2.2.0</version>
</dependency>

Mas pesquisando, vi que quando utilizamos o @EnableWebFlux, nós desabilitamos a autoconfiguração do Spring, incluindo os recursos estáticos, o que eu acredito que inclui o "swagger-ui.html".

Com isso em mente, eu pensei que apenas precisava resetar o Swagger no meu projeto.

Solução

Retirei a dependência:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
    <version>2.2.0</version>
</dependency>

Dei um reload no Maven e iniciei o projeto sem a dependência acima, só por precaução. Adicionei a dependência novamente, outro reload no maven e voltou a funcionar como deveria.