结合使用Smallrye-open-api和Wildfly 20,并将多个war文件部署到同一服务器

问题描述

我正试图在Wildfly 20中使用smallrye-open-api(MicroProfile OpenAPI)。我在一个Wildfly实例上以独立模式部署了多个war文件(模块)。是否有可能用war文件指定应包含在开放api文档中? 我正在尝试,但遇到这样的警告

10:59:06,082 WARN  [org.wildfly.extension.microprofile.openapi.smallrye] (MSC service thread 1-5) [] WFLYMPOAI0003: MicroProfile OpenAPI endpoint already registered for host 'default-host'.  Skipping OpenAPI documentation of 'module-1.war'

对于我所有的模块。似乎Wildfly尝试在第一个遇到的模块上随机注册OpenAPI端点。

解决方法

找到了解决方案。在每个模块(war文件)中,您都应该添加文件

src/resources/META-INF/microprofile-config.properties

在此文件中,使用属性指定在其中可以找到特定战争的OpenAPI的唯一路径

mp.openapi.extensions.path=/myWarOpenapiPath

或者如果模块(war文件)不应包含在OpenAPI文档中,则只需添加属性

mp.openapi.extensions.enabled=false

一些信息可以在这里https://github.com/wildfly/wildfly/blob/master/docs/src/main/asciidoc/_admin-guide/subsystem-configuration/MicroProfile_OpenAPI.adoc