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

Quarkus Reactive端点返回Uni报no serializer found错误如何解决

问题原因

报错的核心是Jackson尝试直接序列化Uni类型对象本身,而非Uni包裹的Tmp实例,和你Tmp类的配置无关。Quarkus默认只有引入RESTEasy Reactive相关模块后,才会自动识别Uni/Multi这类Mutiny响应式类型,先处理异步逻辑拿到返回值后再交给Jackson序列化,否则就会把Uni对象直接交给Jackson触发序列化失败。

解决方案

  • 第一步:检查并替换正确的依赖
    移除项目中传统阻塞版本的RESTEasy Jackson依赖quarkus-resteasy-jackson,引入响应式版本依赖:
    Maven pom.xml配置:
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
    </dependency>
    
    Gradle配置:
    implementation("io.quarkus:quarkus-resteasy-reactive-jackson")
    
  • 第二步:如果已引入正确依赖仍报错,检查是否自定义了ObjectMapper
    如果你手动注册了自定义的ObjectMapper Bean覆盖了Quarkus默认配置,需要手动注册Mutiny专用的Jackson模块:
    import io.smallrye.mutiny.jackson.MutinyJacksonModule;
    
    // 初始化ObjectMapper时添加模块
    objectMapper.registerModule(new MutinyJacksonModule());
    
  • 验证方案:可临时将端点方法返回值改为Tmp类型,直接返回new Tmp("Hello!")测试,如果接口返回正常即可确认问题出在响应式依赖配置上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:06:04