无法在 quarkus 扩展中注入生成的 grpc 客户端

问题描述 投票:0回答:1

我正在编写一个 Quarkus 扩展, 我添加了来自 envoy proxy 的原型文件来为 grpc 客户端生成类。 我创建一个 AuthService bean 并像这样注入授权服务

@ApplicationScoped
public class AuthService {
    @GrpcClient("auth")
    Authorization authorization;
}

在我的 Processor 类中,我像这样添加了AdditionalBeanItem

@BuildStep
    public void additionalBeans(BuildProducer<AdditionalBeanBuildItem> additionalBeans,
                                BuildProducer<ReflectiveClassBuildItem> reflectiveClasses) {
        AdditionalBeanBuildItem.Builder builder = AdditionalBeanBuildItem.builder().setUnremovable();
        builder.addBeanClass(AuthService.class);
        additionalBeans.produce(builder.build());
    }

运行 DevModeTest 时出现此错误:

Build step io.quarkus.grpc.deployment.GrpcClientProcessor#discoverInjectedClients threw an exception: jakarta.enterprise.inject.spi.DeploymentException: io.envoyproxy.envoy.service.auth.v3.Authorization cannot be injected into com.axon.quarkus.auth.runtime.AuthService#authorization - only Mutiny service interfaces, blocking stubs, reactive stubs based on Mutiny and io.grpc.Channel can be injected via @GrpcClient

我期望生成的Authorization可以注入到AuthService中

grpc quarkus quarkus-extension
1个回答
0
投票

Afaik,您自己在 Quarkus GitHub 上回答了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.