私の構成は次のとおりです。
pom.xml
<dependencies>
<!-- Swagger -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.9.1</version>
</dependency>
<!-- Swagger WebJar -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>2.0.24</version>
</dependency>
</dependencies>
root-context.xml
<mvc:annotation-driven/>
<beans:bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
アプリケーションをTomcat8.0にデプロイします。 URIでSwaggerJSONデータを確認できます。
http://localhost:8080/myapp/api-docs
しかし、SwaggerUIを実行できません。プロジェクトでSwaggerUIを実行するには、さらに何をする必要がありますか?
Swagger-uiリソースをに追加することで問題を解決しました
src\main\webapp\docs
私も追加しました
<mvc:default-servlet-handler/>
Pom.xmlへ
これで、次の場所でSwaggerUIにアクセスできます。
http://localhost:8080/myapp/docs/
秘訣は、swagger-uimavenの依存関係がwebjarであるということです。 WebサーバーからWebjarへのパスを構成する必要があります。
現在のMaven依存関係を使用しました:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>2.1.3</version>
</dependency>
そして、注釈を付けて構成しました。
@Configuration
@EnableWebMvc
public class RestConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/");
}
// [...]
}
Spring構成のxmlでも同じことができます。
<mvc:resources mapping="/swagger-ui/**" location="classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/"/>
参照: http://www.jamesward.com/2012/04/30/webjars-in-spring-mvc