5

I am trying to use Springfox Swagger 2 with a non-SpringBoot Spring application (Spring-web MVC), using Spring-web 4.3.22-RELEASE. However when I include the following dependency

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

In my pom.xml, without adding any code to use it or anything like that, my 'maven install' starts failing. The error I see is.

Caused by: java.lang.NoClassDefFoundError: org/springframework/context/event/EventListenerFactory
Caused by: java.lang.ClassNotFoundException: org.springframework.context.event.EventListenerFactory

I think that that is a Spring 5 Class, and I can't figure out how to get it to work with this older verison. Things I've tried:

  1. Add org.webjars:bootstrap as a dependency as well
  2. Decrease the version of springfox-swagger2 I'm using, all the way to 2.0.1. I also tried changing to swagger1 with no success

Note: I have the Jackson Databind dependency mentioned in A 'simple' way to implement Swagger in a Spring MVC application

Relevant parts of POM (its hard to post the entire POM as we have a sophisticated hierarchy, sorry for the formatting)

<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>
pasquers
  • 772
  • 1
  • 8
  • 24

0 Answers0