我正在编写一个 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中
Afaik,您自己在 Quarkus GitHub 上回答了这个问题。