私は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: .+}