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

时间:2014-11-11 08:42:22

标签: java rest jersey jersey-2.0 swagger

我想要做的是根据Jersey 2.x将Swagger添加到我的REST Api中。

但泽西的Swagger似乎是基于泽西岛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)

我认为这是因为

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jersey-jaxrs_2.10</artifactId>
  <version>1.3.1</version>
</dependency>

依赖于

<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.13</version>
</dependency>

这与我的应用程序正在使用的Jersey 2.x冲突。 是否有针对Jersey 2.x的Swagger集成?

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

2 个答案:

答案 0 :(得分:2)

请改用以下依赖项:

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jersey2-jaxrs_2.10</artifactId>
  <version>1.3.10</version>
</dependency>

那应该可以解决你的问题。我们即将发布一个关于如何与jersey / jersey2整合的新教程。

答案 1 :(得分:2)

我害怕swagger-jersey2-jaxrs_2.10罗恩的回答已经过时了。

Per https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5,这是一个更新的依赖项(截至2016年2月):

<dependency>
  <groupId>io.swagger</groupId>
  <artifactId>swagger-jersey2-jaxrs</artifactId>
  <version>1.5.0</version>
</dependency>