无法在 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
就可以了。
我在 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
就可以了。