Swagger 是否也适用于 Jersey 2.x?

Die*_*ter 5 java rest jersey swagger jersey-2.0

我想要做的是将 Swagger 添加到我基于 Jersey 2.x 的 REST Api。

但似乎 Jersey 的 Swagger 基于 Jersey 1.x。当我在 Maven 中添加 Swagger 依赖项时,出现以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
  at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:304)
  at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
  at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.<init>(GrizzlyHttpContainer.java:331)
  at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:119)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jersey-jaxrs_2.10</artifactId>
  <version>1.3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有依赖

<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这与我的应用程序使用的 Jersey 2.x 相冲突。Jersey 2.x 是否有 Swagger 集成可用?

任何想法如何解决我的问题?

Ron*_*Ron 2

请改用以下依赖项:

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jersey2-jaxrs_2.10</artifactId>
  <version>1.3.10</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这应该可以解决你的问题。我们即将发布有关如何与 jersey/jersey2 集成的新教程。