我正在尝试在我的 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) 我不明白为什么我会收到此消息,你能帮助我吗?
................................................ ......
我认为你的项目是 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/");
}