You need to enable JavaScript to run this app. TomEE 9 Plume等版本无法访问Microprofile OpenAPI接口如何解决
优惠活动
大模型
产品
解决方案
定价
更多

TomEE 9 Plume等版本无法访问Microprofile OpenAPI接口如何解决

问题原因说明

你遇到的情况是TomEE不同发行版的默认组件启用策略差异导致的:WebProfile、Plume、Plus版本仅预置了MicroProfile相关组件的实现包,但默认不会自动加载OpenAPI扩展,只有MicroProfile专属发行版才会默认开启该扩展,因此才会出现相同构件在不同版本下访问/openapi端点表现不一致的问题。

解决步骤
  • 第一步:调整pom.xml中OpenAPI依赖的作用域,避免类冲突
    由于TomEE所有发行版都已经内置了MicroProfile OpenAPI的实现,不需要将API包打包到应用中,将依赖的scope改为provided即可:
    <dependency>
        <groupId>org.eclipse.microprofile.openapi</groupId>
        <artifactId>microprofile-openapi-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
    
  • 第二步:在应用中开启OpenAPI扩展
    在你的应用WEB-INF目录下新增openejb-jar.xml配置文件,添加如下配置启用当前应用的OpenAPI支持:
    <?xml version="1.0" encoding="UTF-8"?>
    <openejb-jar xmlns="http://tomee.apache.org/xml/ns/openejb-jar-9.0">
        <properties>
            <property name="tomee.mp.openapi.enabled" value="true" />
            <!-- 可选配置:自定义OpenAPI端点路径,默认是/openapi -->
            <!-- <property name="tomee.mp.openapi.path" value="/custom-openapi" /> -->
        </properties>
    </openejb-jar>
    
  • 第三步(可选):全局开启OpenAPI扩展
    如果需要在TomEE实例上部署的所有应用都支持OpenAPI端点,可以直接修改TomEE conf/system.properties文件,添加配置:
    tomee.mp.openapi.enabled = true
    
验证

注意:如果你的应用配置了非空的上下文根(比如应用部署后访问路径前缀为/myapp),那么OpenAPI端点的访问路径需要拼接上下文根,即http://localhost:8080/myapp/openapi。

配置完成后重新打包应用部署到Plume/Webprofile/Plus版本的TomEE,启动后即可正常访问对应路径下的OpenAPI Schema。

内容的提问来源于stack exchange,提问作者steppenwolfe3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 13:36:02