You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus扩展添加REST资源后端点不显示,求排查方案

Quarkus扩展REST端点不显示的问题解决

你当前的问题在于:仅通过AdditionalBeanBuildItem将KwarkResource注册为CDI bean,但Quarkus的JAX-RS组件并未识别它是REST资源。需要在构建步骤中添加专门的JAX-RS资源标记构建项,无需依赖beans.xml。

解决方案

修改你的部署处理器代码,添加JaxrsResourceBuildItem构建步骤,明确告知Quarkus该类是JAX-RS资源:

import io.quarkus.arc.processor.DotNames;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.AdditionalBeanBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.jaxrs.JaxrsResourceBuildItem;

public class KwarkProcessor {

    @BuildStep
    public FeatureBuildItem feature() {
        return new FeatureBuildItem("kwark");
    }

    @BuildStep
    public AdditionalBeanBuildItem additionalBeanBuildItem() {
        return AdditionalBeanBuildItem.builder()
                .addBeanClass(KwarkResource.class)
                .setDefaultScope(DotNames.APPLICATION_SCOPED)
                .setUnremovable()
                .build();
    }

    @BuildStep
    public JaxrsResourceBuildItem jaxrsResource() {
        return new JaxrsResourceBuildItem(KwarkResource.class.getName());
    }
}

原因说明

Quarkus在无beans.xml的情况下采用隐式归档模式,只会自动扫描应用代码中带有@Path、@GET等JAX-RS注解的类,但对于扩展模块中的类,框架不会自动扫描,必须通过JaxrsResourceBuildItem明确标记,才能让JAX-RS扩展识别并注册该端点。

额外检查

确保扩展的pom.xml中已正确添加JAX-RS相关的部署依赖:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-jaxrs-deployment</artifactId>
    <version>${quarkus.version}</version>
    <scope>provided</scope>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:54:58