Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Quarkus上启动gRPC服务器-找不到公开`BindableService'的bean`_Java_Quarkus_Grpc Java - Fatal编程技术网

Java 无法在Quarkus上启动gRPC服务器-找不到公开`BindableService'的bean`

Java 无法在Quarkus上启动gRPC服务器-找不到公开`BindableService'的bean`,java,quarkus,grpc-java,Java,Quarkus,Grpc Java,我在quarkus 1.5.1.Final中使用整合的*.proto提供了一个运行的gRPC服务,并使用一个运行的工具服务构建了类 然后,我将服务组件分解到它自己的项目中,将依赖关系放在生成的类组件上(模块上方),但当我尝试使用/mvnw quarkus:dev启动服务应用程序时,我无法启动gRPC服务器: WARN [io.qua.grp.dep.GrpcServerProcessor] (build-7) Unable to find beans exposing the `Bindabl

我在quarkus 1.5.1.Final中使用整合的
*.proto
提供了一个运行的gRPC服务,并使用一个运行的工具服务构建了类

然后,我将服务组件分解到它自己的项目中,将依赖关系放在生成的类组件上(模块上方),但当我尝试使用
/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());
    }
}
package org.ikeda.address.grpc;
输入io.smallrye.mutiny.Uni;
导入org.ikeda.address.grpc.service.AddressManager;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入javax.inject.inject;
导入javax.inject.Singleton;
@独生子女
公共类AddressGrpcService扩展了MultinyAddressServiceGrpc.AddressServiceImplBase{
私有记录器log=LoggerFactory.getLogger(AddressGrpcService.class);
@注入
私人地址管理器地址管理器;
@凌驾
公用统一地址(PageRequest请求){
debug(“页面大小:{},页码:{}”,request.getPageSize(),request.getPageNumber());
返回此地址管理器
.getPaginatedAddresses(request.getPageNumber(),request.getPageSize())
.map(地址->地址响应.newBuilder().addAllAddresss(地址).build());
}
}
当我将生成的类与实现共同定位时,服务器启动没有问题


没有意义的是,repo中不存在
io.qua.grp.dep.GrpcServerProcessor
,尽管我能够找到
io.quarkus.grpc.deployment.GrpcServerProcessor

的源代码,您需要在Jandex索引中包含额外的模块,以便可以找到服务


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

好的,刚刚意识到
io.qua.grp.dep.GrpcServerProcessor
只是对包的一个简化。在添加Jandex插件后仍然无法加载bean。这样做很有效。我还必须将
com.google.protobuf:protobufjava
依赖项添加到我正在运行的服务中。由于某些原因,无法获取可传递依赖项。遇到了相同的问题。这真的应该包含在Quarkus说明的某个地方,因为我认为我快疯了。请注意,您提到的依赖关系似乎不再需要了。