java – Swagger2 Spring REST API不能正常工作
作者:互联网
我有一个Spring Rest控制器及其NOT spring启动应用程序.它只是一个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
我的招摇配置类 –
@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演示.我尝试使用和不使用以下类,并且无论如何都无法正常工作.
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[]{"/*"};
}
}
我可以在相同的上下文中访问我的其他网址但不能访问swagger-ui.html.
请让我知道我在这里缺少什么?
解决方法:
我添加了手动选择的控制器:
@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,spring,swagger-2-0,springfox 来源: https://codeday.me/bug/20190706/1397402.html