Я пытаюсь использовать Springfox Swagger 2 с приложением Spring, отличным от SpringBoot (Spring-web MVC), используя Spring-web 4.3.22-RELEASE. Однако, когда я включаю следующую зависимость
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
в свой pom. xml, без добавления кода для его использования или чего-то подобного, моя «установка maven» начинает давать сбой. Я вижу ошибку.
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/event/EventListenerFactory
Caused by: java.lang.ClassNotFoundException: org.springframework.context.event.EventListenerFactory
Я думаю, что это класс Spring 5, и я не могу понять, как заставить его работать с этой старой версией. Вещи, которые я пробовал:
- Добавить org.webjars: bootstrap в качестве зависимости
- Уменьшить версию springfox-swagger2, которую я использую, вплоть до 2.0.1. Я также попытался безуспешно перейти на swagger1
Примечание. У меня есть зависимость Jackson Databind, упомянутая в «Простой» способ реализовать Swagger в приложении Spring MVC
Соответствующие части POM (сложно опубликовать весь POM, поскольку у нас сложная иерархия, извините за форматирование)
<properties>
<jackson.databind.version>2.9.8</jackson.databind.version>
<spring.version>4.3.22.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.databind.version}</version>
</dependency>