Springfox swagger2 без Spring Boot (Spring-web 4.3.22) - PullRequest
3 голосов
/ 18 июня 2020

Я пытаюсь использовать 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, и я не могу понять, как заставить его работать с этой старой версией. Вещи, которые я пробовал:

  1. Добавить org.webjars: bootstrap в качестве зависимости
  2. Уменьшить версию 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>
...