gpt4 book ai didi

java - Swagger2 + Spring REST API 不工作

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:05 25 4
gpt4 key购买 nike

我有一个 Spring Rest Controller 及其非 Spring Boot 应用程序。它只是一个 REST API 项目。我想在我的项目中集成 swagger2。我尝试了 Net 和演示中的所有示例,但没有成功。当我尝试执行 http://localhost:8085/context/swagger-ui.html我收到 404 错误。请在下面找到我的配置,如果有任何差异,请告诉我。非常感谢任何帮助。

jars - under /WEB-INF/lib

google-collections-1.0.jar springfox-core-2.2.2.jar springfox-schema-2.2.2.jar springfox-spi-2.2.2.jar springfox-spring-web-2.2.2.jar springfox-staticdocs-2.2.2.jar springfox-swagger-common-2.2.2.jar springfox-swagger-ui-2.2.2.jar springfox-swagger2-2.2.2.jar

我的 swagger 配置类 -

@EnableSwagger2
public class SwaggerConfiguration {

}

我的springconfig类

@EnableWebMvc
@ComponentScan(basePackageClasses = controller.class)
@Import(SwaggerConfiguration.class)
public class SpringConfiguration extends WebMvcConfigurerAdapter {

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

registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}

根据 springfox-java 演示,下面是我的应用程序初始化程序类。我尝试使用和不使用以下类(class),但无论哪种方式都无法正常工作。

Application Initializer class

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{controller.class};
}

@Override
protected String[] getServletMappings() {
return new String[]{"/*"};
}
}

我可以在相同的上下文中访问我的 rest url 但不能访问 swagger-ui.html。

请让我知道我在这里缺少什么?

最佳答案

我添加了 Controller 的手动选择:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("my.package.to.api"))
.paths(regex("/product.*")) //optional
.build();

}
}

关于java - Swagger2 + Spring REST API 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34387148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com