Не найдено сопоставления для swagger-resources/configuration/ui
Я пытаюсь настроить Swagger UI в приложении без весенней загрузки. Я сделал следующие вещи. 1. Добавлены следующие зависимости
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.5</version>
</dependency>
2. Добавлен класс Swagger Config
@Configuration
@EnableSwagger2
@EnableWebMvc
//@PropertySource("classpath:/swagger.properties")
public class SwaggerConfig {
@Bean
public Docket proposalApis(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("test")
.select()
.apis(RequestHandlerSelectors.basePackage("com.test.abc"))
.paths(PathSelectors.regex("/test1.*"))
.build()
.apiInfo(testApiInfo());
}
private ApiInfo testApiInfo() {
ApiInfo apiInfo = new ApiInfoBuilder().title("Test APIs").description("GET POST PUT methods are supported ").version("V1").build();
return apiInfo;
}
}
Добавлены следующие сопоставления:
<mvc:resources mapping="swagger-ui.html" location="classpath:/META- INF/resources/"/> <mvc:resources mapping="/webjars/**" location="classpath:/META- INF/resources/webjars/"/>
Я могу получить доступ к следующим URL
/v2/api-docs
/swagger-resources
Но при загрузке swagger-ui.html пользовательский интерфейс загружается и на сервере появляется следующая ошибка
No mapping found for /context/swagger-resources/configuration/ui in Dispatcher servlet
Может кто-нибудь помочь?
2 ответа
Я использую Swagger версии 2.3.1 в моем пом. Интересно, почему у вас есть разные версии для springfox-swagger2
а также springfox-swagger-ui
артефакты?
Мой класс SwaggerConfig выглядит следующим образом. Нет свойств:
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Autowired
private TypeResolver typeResolver;
@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("FooBar")
.select()
//Ignores controllers annotated with @CustomIgnore
.apis(any()) //Selection by RequestHandler
.paths(paths()) // and by paths
.build()
.apiInfo(apiInfo()
);
}
private ApiInfo apiInfo() {
return new ApiInfo("FooBar",
"A java server based on SpringBoot",
"1.0.0",
null,
"author","","");
}
//Here is an example where we select any api that matches one of these paths
private Predicate<String> paths() {
return or(
regex("/foobar/*.*")
);
}
}
Нет конфигурации или ресурсов для меня.
Страница появляется сразу, когда я нажимаю на URL http://localhost:8080/foobar/swagger-ui.html
Различные версии springfox-swagger2 и springfox-swagger-ui были проблемой. В некоторых случаях, например, в версии 2.5.0 и более поздней версии 2.6.1, интеграция работает нормально. Но если первый имеет 2.6.1, а последний 2.4.0, то пользовательский интерфейс становится несовместимым. Следовательно, я предлагаю, если обе зависимости будут взяты из одной и той же версии на практике, то неожиданное функционирование чванства может быть уменьшено.