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

Quarkus gRPC构建报错:仅Mutiny服务接口等可通过@GrpcClient注入

报错原因

你当前通过@GrpcClient注解注入的是gRPC原生生成的XxxServiceGrpc原始类,不符合Quarkus gRPC客户端的注入要求。Quarkus的@GrpcClient仅支持注入四类对象:Mutiny响应式服务接口、基于Mutiny的阻塞Stub、基于Mutiny的响应式Stub、io.grpc.Channel原生通道,注入其他类型就会触发该构建报错。

解决方案

你可以根据自己的业务需求选择以下任意一种方案修复:

  • 优先使用Quarkus适配的Mutiny响应式Stub:将注入的类型替换为proto生成的Mutiny版Stub即可,比如你定义的服务名为DemoService,对应注入类型为MutinyDemoServiceGrpc.MutinyDemoServiceStub,这是Quarkus官方推荐的gRPC客户端使用方式。
  • 若需要使用同步阻塞调用逻辑:将注入类型替换为对应阻塞Stub,示例为MutinyDemoServiceGrpc.DemoServiceBlockingStub。
  • 若你必须使用原生gRPC Stub:先通过@GrpcClient注入io.grpc.Channel对象,再手动构造原生Stub,示例代码如下:
    @GrpcClient("demo-service")
    Channel channel;
    
    // 手动构造原生Stub
    public DemoServiceGrpc.DemoServiceStub getNativeStub() {
      return DemoServiceGrpc.newStub(channel);
    }
    
  • 额外校验:确认项目依赖中已正确引入quarkus-grpc依赖,且依赖版本与项目使用的Quarkus整体版本保持一致,避免版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:57:05