gRPC генерирует файлы с ошибками компиляции
gRPC генерирует файлы с ошибками компиляции, а именно:
com.salesforce.reactorgrpc.stub cannot be resolved
Вот целиком сгенерированный файл:
package ru.terentyev.rikmasterstesttask.roastingcoffee;
import static ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingProcessorGrpc.getServiceDescriptor;
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;
@javax.annotation.Generated(
value = "by ReactorGrpc generator",
comments = "Source: coffee.proto")
public final class ReactorRoastingProcessorGrpc {
private ReactorRoastingProcessorGrpc() {}
public static ReactorRoastingProcessorStub newReactorStub(io.grpc.Channel channel) {
return new ReactorRoastingProcessorStub(channel);
}
public static final class ReactorRoastingProcessorStub extends io.grpc.stub.AbstractStub<ReactorRoastingProcessorStub> {
private RoastingProcessorGrpc.RoastingProcessorStub delegateStub;
private ReactorRoastingProcessorStub(io.grpc.Channel channel) {
super(channel);
delegateStub = RoastingProcessorGrpc.newStub(channel);
}
private ReactorRoastingProcessorStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
super(channel, callOptions);
delegateStub = RoastingProcessorGrpc.newStub(channel).build(channel, callOptions);
}
@Override
protected ReactorRoastingProcessorStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
return new ReactorRoastingProcessorStub(channel, callOptions);
}
public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(reactor.core.publisher.Mono<ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest> reactorRequest) {
return com.salesforce.reactorgrpc.stub.ClientCalls.oneToOne(reactorRequest, delegateStub::sendRoasting, getCallOptions());
}
public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest reactorRequest) {
return com.salesforce.reactorgrpc.stub.ClientCalls.oneToOne(reactor.core.publisher.Mono.just(reactorRequest), delegateStub::sendRoasting, getCallOptions());
}
}
public static abstract class RoastingProcessorImplBase implements io.grpc.BindableService {
public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest request) {
return sendRoasting(reactor.core.publisher.Mono.just(request));
}
public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(reactor.core.publisher.Mono<ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest> request) {
throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED);
}
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
.addMethod(
ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingProcessorGrpc.getSendRoastingMethod(),
asyncUnaryCall(
new MethodHandlers<
ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest,
com.google.protobuf.Empty>(
this, METHODID_SEND_ROASTING)))
.build();
}
protected io.grpc.CallOptions getCallOptions(int methodId) {
return null;
}
protected Throwable onErrorMap(Throwable throwable) {
return com.salesforce.reactorgrpc.stub.ServerCalls.prepareError(throwable);
}
}
public static final int METHODID_SEND_ROASTING = 0;
private static final class MethodHandlers<Req, Resp> implements
io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
private final RoastingProcessorImplBase serviceImpl;
private final int methodId;
MethodHandlers(RoastingProcessorImplBase serviceImpl, int methodId) {
this.serviceImpl = serviceImpl;
this.methodId = methodId;
}
@java.lang.Override
@java.lang.SuppressWarnings("unchecked")
public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
switch (methodId) {
case METHODID_SEND_ROASTING:
com.salesforce.reactorgrpc.stub.ServerCalls.oneToOne((ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest) request,
(io.grpc.stub.StreamObserver<com.google.protobuf.Empty>) responseObserver,
serviceImpl::sendRoasting, serviceImpl::onErrorMap);
break;
default:
throw new java.lang.AssertionError();
}
}
@java.lang.Override
@java.lang.SuppressWarnings("unchecked")
public io.grpc.stub.StreamObserver<Req> invoke(io.grpc.stub.StreamObserver<Resp> responseObserver) {
switch (methodId) {
default:
throw new java.lang.AssertionError();
}
}
}
}
Файл .proto
:
syntax = "proto3";
option java_package = "ru.terentyev.rikmasterstesttask.roastingcoffee";
option java_multiple_files = true;
import "google/protobuf/empty.proto";
service RoastingProcessor {
rpc sendRoasting(RoastingRequest) returns (google.protobuf.Empty) {}
}
message RoastingRequest {
string sort = 1;
string country = 2;
string brigadeNumber = 3;
}
И pom.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>ru.terentyev</groupId>
<artifactId>rikmasterstesttask</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>rikmasterstesttask</name>
<description>Test task for Rik Masters</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<grpc.version>1.68.0</grpc.version>
<java.version>22</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>4.28.2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency> <!-- necessary for Java 9+ -->
<groupId>org.apache.tomcat</groupId>
<artifactId>annotations-api</artifactId>
<version>6.0.53</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>3.6.10</version>
</dependency>
<dependency>
<groupId>com.salesforce.servicelibs</groupId>
<artifactId>reactive-grpc</artifactId>
<version>1.2.4</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.salesforce.servicelibs</groupId>
<artifactId>reactor-grpc-stub</artifactId>
<version>1.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.salesforce.servicelibs</groupId>
<artifactId>reactor-grpc</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>io.github.ascopes</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<sourceDirectories>
<sourceDirectory>proto</sourceDirectory>
</sourceDirectories>
<protocVersion>4.28.2</protocVersion>
<binaryMavenPlugins>
<binaryMavenPlugin>
<groupId>io.grpc</groupId>
<artifactId>protoc-gen-grpc-java</artifactId>
<version>${grpc.version}</version>
</binaryMavenPlugin>
</binaryMavenPlugins>
<jvmMavenPlugins>
<jvmMavenPlugin>
<groupId>com.salesforce.servicelibs</groupId>
<artifactId>reactor-grpc</artifactId>
<version>1.2.4</version>
</jvmMavenPlugin>
</jvmMavenPlugins>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
В интернете нашел только информацию о том, что такое уже было в прошлых версиях и было исправлено в версии 1.1.0. Попробовал сменить версию на 1.1.0 - бесполезно.