Как правильно настроить Swagger2 с Spring MVC, а не с пружинной загрузкой.
В настоящее время добавлены следующие компоненты
Maven Dependency
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!--Dependency for swagger ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
В контексте сервлет-диспетчера
<bean id="swagger2Config" class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration"/>
<mvc:resources location="/resources/" mapping="/resources/**"
order="1" />
<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html" />
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**" />
<mvc:default-servlet-handler />
и добавил конфигурацию
@EnableSwagger2
public class SwaggerConfiguration 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/");
}
}
Мой контекст приложения, скажем, пример, когда я пытался запустить приложение
http://localhost:8080/sample/swagger-ui.html,
Я получаюошибка
Unable to infer base url. This is common when using dynamic servlet
registration or when the API is behind an API Gateway. The base url is the
root of where all the swagger resources are served. For e.g. if the api is
available at http://example.org/api/v2/api-docs then the base url is
http://example.org/api/. Please enter the location manually:
Если я попытался http://localhost:8080/sample/v2/api-docs/
, я получаю исключение
Handler processing failed; nested exception is java.lang.NoSuchMethodError
on org.springframework.web.util.UriComponentsBuilder.fromHttpRequest
Я что-то здесь упускаю, чтобы заставить его работать.
Кстати, я использую Spring 3.2.9 и Servlet API 2.5
Спасибо всем