无法在 Quarkus 上启动 gRPC 服务器 - 无法找到公开“BindableService”的 bean

Unable to start gRPC server on Quarkus - Unable to find beans exposing the `BindableService`

我在 quarkus 1.5 中有一个可用的 gRPC 服务。1.Final 具有合并的 *.proto 并构建了 类 并具有一个可用的实现服务。

然后我将服务组件分解到它自己的项目中,依赖于生成的 类 组件(在模块上方)但是当我尝试使用 ./mvnw quarkus:dev 启动服务应用程序时我无法获得要启动的 gRPC 服务器:

WARN  [io.qua.grp.dep.GrpcServerProcessor] (build-7) Unable to find beans exposing the `BindableService` interface - not starting the gRPC server

这是服务:

package org.ikeda.address.grpc;

import io.smallrye.mutiny.Uni;
import org.ikeda.address.grpc.service.AddressManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;
import javax.inject.Singleton;

@Singleton
public class AddressGrpcService extends MutinyAddressServiceGrpc.AddressServiceImplBase {
    private Logger log = LoggerFactory.getLogger(AddressGrpcService.class);

    @Inject
    private AddressManager addressManager;

    @Override
    public Uni<AddressResponse> getAddress(PageRequest request) {
        log.debug("Page size: {}, Page number: {}", request.getPageSize(), request.getPageNumber());

        return this.addressManager
                .getPaginatedAddresses(request.getPageNumber(), request.getPageSize())
                .map(addresses -> AddressResponse.newBuilder().addAllAddresses(addresses).build());
    }
}

当我将生成的 类 与实现放在一起时,服务器启动没问题。

虽然我能够找到 io.quarkus.grpc.deployment.GrpcServerProcessor

的源代码,但没有意义的是 io.qua.grp.dep.GrpcServerProcessor 不存在于回购协议中

您需要将附加模块包含在 Jandex 索引中,以便可以找到服务。

只需在附加模块的src/main/resources中添加一个空的META-INF/beans.xml就可以了。