我想要做的是根据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集成?
任何想法如何解决我的问题呢?
答案 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>