В моем Protocol.proto
файле у меня RP C, определенный следующим образом:
message Task {
// My own fields
}
message Result {
// My own fields
}
service ClientListener {
rpc SendTask(Task) returns (Result);
}
В языковом файле Groovy я хочу создать блокирующий клиент. Проблема в том, что я не могу найти способ использовать метод newBlockingStub
, если я пытаюсь вызвать его так:
import Protocol.ClientListener;
import Protocol.ClientListener.BlockingStub;
ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 8080).usePlaintext().build();
BlockingStub stub = ClientListener.newBlockingStub(channel);
затем
No signature of method: static ClientListener.newBlockingStub() is applicable for
argument types: (io.grpc.internal.ManagedChannelOrphanWrapper) values:
[ManagedChannelOrphanWrapper{delegate=ManagedChannelImpl{logId=1,
target=localhost:8080}}]
Possible solutions: newBlockingStub(com.google.protobuf.BlockingRpcChannel)
выдается ошибка .
В качестве альтернативы я вижу, что другие учебники импортируют класс CustomServiceName Grp c, но когда я пытаюсь импортировать такой класс:
import Protocol.ClientListenerGrpc;
, я получаю ошибка
Groovy: unable to resolve class Protocol.ClientListenerGrpc
Итак, как импортировать метод newBlockingStub ?
Мой файл maven имеет следующие зависимости:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>1.27.2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.27.2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.27.2</version>
</dependency>
<dependency>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
<type>pom</type>
</dependency>
и компилирует все прото классы для Task
и Result
и ClientListener
, но не ClientListenerGrpc
Кажется, что maven не компилирует класс ClientListenerGrp c, почему?