我有一个现有的dropwizard 0.7.0服务,我想用Swagger记录。我正在使用来自https://github.com/wordnik/swagger-core/wiki/JavaDropwizard-Quickstart
的swagger的followind依赖项<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jaxrs_2.10</artifactId>
<version>1.3.0</version>
</dependency>
然而,当我添加该依赖项时,我收到以下错误:
java.lang.NoClassDefFoundError: com/google/common/collect/FluentIterable
at com.fasterxml.jackson.datatype.guava.GuavaTypeModifier.modifyType(GuavaTypeModifier.java:38)
以下帖子很有帮助,但我的问题是依赖关系。 How to use swagger with dropwizard .0.7.0
我的POM应该包含什么?我的dropwizard依赖是:
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>0.7.0</version>
</dependency>
谢谢
答案 0 :(得分:1)
试试这个 -
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jaxrs_2.10</artifactId>
<version>1.3.5</version>
<exclusions>
<exclusion>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
</exclusion>
<exclusion>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-annotations</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>paranamer</artifactId>
<groupId>com.thoughtworks.paranamer</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
<exclusion>
<artifactId>javassist</artifactId>
<groupId>org.javassist</groupId>
</exclusion>
<exclusion>
<artifactId>joda-time</artifactId>
<groupId>joda-time</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
答案 1 :(得分:0)
您需要在运行时使用guava库,因此请添加
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
答案 2 :(得分:0)
对于swagger规范2.0,请在此处查看更新的示例:
https://github.com/swagger-api/swagger-core/tree/develop_2.0/samples/java-dropwizard
它有一个更新的应用程序类,用于1.5.1-M1 swagger-core。
答案 3 :(得分:0)
使用dropwizard-swagger
。
查看Swagger的GitHub页面中的Version Matrix。它包括:
dropwizard-swagger Dropwizard Swagger API Swagger UI
----------------------------------------------------------
< 0.5 0.7.x 1.3.2 ?
0.5.x 0.7.x 1.3.12 v2.1.4-M1
0.6.x 0.8.0 1.3.12 v2.1.4-M1
0.7.x 0.8.0 1.5.1-M2 v2.1.4-M1
在您的情况下,您只需要:
<dependency>
<groupId>com.federecio</groupId>
<artifactId>dropwizard-swagger</artifactId>
<version>0.4</version>
</dependency>