首页 文章

将Swagger与Dropwizard集成,无法生成swagger.json文件

提问于
浏览
0

我已完成以下步骤:

我有一个现有的drop-wizard项目设置[0.8版本] .

增加依赖性

<dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>1.3.12</version>
            <scope>compile</scope>
    </dependency>
    <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-core</artifactId>
            <version>1.5.1-M2</version>
    </dependency>

我已将@Api注释添加到我的资源文件中 .

我已将以下代码添加到应用程序运行类:

environment.jersey().register(new ApiListingResource());
BeanConfig config = new BeanConfig();
        config.setTitle("default Application");
        config.setVersion("1.0.0");
        config.setResourcePackage("com.class.where.the.api.annotation.are");
        config.setScan(true);

问题是当我运行应用程序时,我无法通过转到http://localhost:8080/swagger.json来获取swagger.json .

几乎按照这里的例子:https://github.com/swagger-api/swagger-core/tree/master/samples/java-dropwizard

有谁知道问题是什么?我还需要设置什么? [该应用程序运行并启动正常,我只是无法访问该swagger.json文件]

1 回答

  • 3

    您正在使用冲突和不完整的依赖项 . 如果你看一下https://github.com/swagger-api/swagger-samples/tree/master/java/java-dropwizard样本,你会发现你确实需要包括:

    <dependency>
      <groupId>com.wordnik</groupId>
      <artifactId>swagger-jersey2-jaxrs</artifactId>
      <version>1.5.1-M1</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>com.sun.jersey</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    

    只有那个(没有swagger-core直接) . 如果您使用与您拥有的配置相似的配置,它应该可以正常工作 .

相关问题