无法获得swagger.json

时间:2015-08-04 20:35:23

标签: java json spring swagger swagger-2.0

我有一个jax-rs spring rest web app,我想在其中添加swagger doc。

在我的web.xml中,这已经为我现有的REST API定义了:

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>com.bloom.rest.jaxrs.JaxrsApplication</servlet-name>
    <!-- Force immediate loading -->
    <load-on-startup>0</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>com.bloom.rest.jaxrs.JaxrsApplication</servlet-name>
    <url-pattern>/v1/*</url-pattern>
  </servlet-mapping>

我在我的servlet中添加了Swagger配置:JaxrsApplication

        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.2");
        beanConfig.setSchemes(new String[]{"http"});
        beanConfig.setHost("localhost:8080");
        beanConfig.setBasePath("/v1");
        beanConfig.setResourcePackage("com.bloom.rest.endpoints");
        beanConfig.setScan(true);

我还在我的上下文xml文件中添加了swagger bean:

<bean id="apiListingResource" class="io.swagger.jaxrs.listing.ApiListingResource" />
    <bean id="swaggerSerializers" class="io.swagger.jaxrs.listing.SwaggerSerializers"
        scope="singleton" />

似乎扫描我的资源工作正常:

 INFO  AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
 INFO  JestClientFactory - Node Discovery Disabled...
 INFO  ContextLoader - Root WebApplicationContext: initialization completed in 7821 ms
 INFO  Reflections - Reflections took 84 ms to scan 1 urls, producing 66 keys and 276 values

http://localhost:8080/v1/swagger.json无效(给出404)。

我已经尝试了很多案例(在swagger conf中使用v1,没有等等)但是缺少了一些东西。你有什么想法吗?

我现有的api是这样的:

http://localhost:8080/v1/users/34

的工作原理。只是新添加的招摇不是。

1 个答案:

答案 0 :(得分:0)

如果您正在使用Application类而不是Spring的扫描,那么您很可能会在该类中指定您的资源,这就是为什么bean定义无法获取的原因。尝试将io.swagger.jaxrs.listing.ApiListingResourceio.swagger.jaxrs.listing.SwaggerSerializers作为资源添加到Application类。