我无法在java spring中配置swagger

问题描述 投票:0回答:1

我正在尝试在我的 java spring 后端应用程序上实现 swagger。在学习了几个教程之后,这是我得到的结果: Swagger配置:

package com.covoit.covoitbackend.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
@EnableWebMvc
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select()`

                .apis(RequestHandlerSelectors.basePackage("com.covoit.covoitbackend.RestService"))
                .paths(PathSelectors.regex("/.*"))
                .build().apiInfo(apiInfoMetaData());
    }

    private ApiInfo apiInfoMetaData() {

        return new ApiInfoBuilder().title("Web Service covoit")
                .description("API Endpoint in persistence DB Covoit")
                .contact(new Contact("Dev-Team", "https://www.dev-team.com/", "[email protected]"))
                .license("Apache 2.0")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
                .version("1.0.0")
                .build();
    }

}

还有 pom.xml :

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

但是当我输入网址时出现错误:http://localhost:9090/swagger-ui/index.html 此应用程序没有 /error 的显式映射,因此您将其视为后备。

2024 年欧洲夏令时间 4 月 28 日星期日 17:50:18 出现意外错误(类型=未找到,状态=404)。 没有端点 GET /v3/api-docs。 org.springframework.web.servlet.NoHandlerFoundException:没有端点 GET /v3/api-docs。 在 org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:1304) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) 在 jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) 在 jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) 在 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) 在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) 在org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) 在 org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) 在 java.base/java.lang.Thread.run(Thread.java:1570) 我不明白为什么我会收到此消息,你能帮助我吗?

................................................ ......

java spring-boot swagger swagger-ui
1个回答
0
投票

我认为你的项目是 Spring Mvc 项目

我想在 SwaggerConfig 中添加更多代码
如下

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
            .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
            .addResourceLocations("classpath:/META-INF/resoucres/webjars/");
    }
© www.soinside.com 2019 - 2024. All rights reserved.