2016-05-24 5 views
0

私はSwaggerのドキュメントを読み、ドキュメントに従って構成しました。Jersey + Spring + Tomcat環境でswagger.jsonが生成されない

私はhttp://localhost:8080/rest/api-docsページを要求すると、闊歩はすべての情報を正しく示しているが、それはswagger.jsonを生成しませんので、http://localhost:8080/rest/swagger.jsonリターン404

私のエンドポイントhttp://localhost:8080/rest/testも正常に動作します。ここで

は私web.xmlです:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<servlet> 
    <servlet-name>jersey</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.test.JerseyConfig</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jersey</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

<!-- Swagger Config --> 
<servlet> 
    <servlet-name>Jersey2Config</servlet-name> 
    <servlet-class>com.wordnik.swagger.jersey.config.JerseyJaxrsConfig</servlet-class> 
    <init-param> 
     <param-name>api.version</param-name> 
     <param-value>1.0.0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>swagger.api.basepath</param-name> 
     <param-value>http://localhost:8080/rest/</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

JerseyConfigクラス:

public class JerseyConfig extends ResourceConfig { 
    public JerseyConfig() { 
     register(Test.class); 
     //.... 
     // Swagger 
     register(com.wordnik.swagger.jersey.listing.ApiListingResource.class); 
     register(com.wordnik.swagger.jersey.listing.ApiListingResourceJSON.class); 
     register(com.wordnik.swagger.jersey.listing.JerseyApiDeclarationProvider.class); 
     register(com.wordnik.swagger.jersey.listing.JerseyResourceListingProvider.class); 
    } 
} 

Test.class闊歩@Apiで注釈を付け、簡単なエンドポイント、です。

@Path("/test") 
@Api(value = "/test", description = "tttttt") 
public class TestResource { 

    @GET 
    @ApiOperation(value = "Checks server") 
    @ApiResponses(@ApiResponse(code = 200, message = "Server is available")) 
    public Response check() { 
     return Response.ok().build(); 
    } 
} 

アプリケーションがTomcatにデプロイされています。


ジャージーResourceModelによると、闊歩によって作成された唯一のエンドポイントは以下のとおりです。

GET  /api-docs 
    GET  /api-docs/{route: .+} 

答えて

0

swagger.json場所が闊歩定義するための推奨場所である、しかし、それはそれができるだけの場所ではありません生成される。 swagger-uiにapi-docsの場所を入れてみてください。正常に動作するはずです。

関連する問題