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

JaxRsSecurityConfig冲突:quarkus-spring-data-rest与quarkus-resteasy-reactive兼容问题

冲突根本原因

quarkus-spring-data-rest 扩展默认依赖阻塞式 quarkus-resteasy 实现,与响应式 quarkus-resteasy-reactive 属于两套独立的 JAX-RS 技术栈,两者都会注册同一个 security.jaxrs.deny-unannotated-endpoints 配置项,因此启动时触发重复配置冲突。

可行解决方案
  • 方案一:排除 quarkus-spring-data-rest 内置的阻塞式 resteasy 依赖
    若使用Maven,在 quarkus-spring-data-rest 的依赖声明中添加排除规则:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-spring-data-rest</artifactId>
        <exclusions>
            <exclusion>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-resteasy</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-resteasy-jackson</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    若使用Gradle,配置如下:

    implementation("io.quarkus:quarkus-spring-data-rest") {
        exclude group: 'io.quarkus', module: 'quarkus-resteasy'
        exclude group: 'io.quarkus', module: 'quarkus-resteasy-jackson'
    }
    

    排除完成后,额外引入 quarkus-resteasy-reactive-jackson 扩展保证序列化能力正常即可。Quarkus 2.15及以上版本已验证该组合可正常兼容 @ServerExceptionMapper 和 @RepositoryRestResource 两个注解的能力。

  • 方案二:替换技术栈组合规避冲突
    若不需要 @RepositoryRestResource 的自动REST接口暴露能力,仅需Spring风格的Repository实现,可直接使用 quarkus-spring-data-jpa + quarkus-resteasy-reactive-spring-web 组合,自行实现接口层逻辑,完全避免依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:36:06