gRPC компилятор protoc создает не ожидаемый - PullRequest
0 голосов
/ 23 мая 2018

я начинаю с gRPC, создающего простую программу чата Java.

protc - версия печатает libprotoc 3.5.1

Файл -proto:

syntax = "proto3";
option java_multiple_files = true;
option java_package = "grpc";
// whihout this Option i get no service
option java_generic_services = true;
option java_outer_classname = "ChatProto";
option objc_class_prefix = "HLW";
package chat;
message ClientPost {
  string name = 1;
  string value = 2;
}
message ServerReply {
  ClientPost back = 1;
}
// The  service definition.
service  Verbindung {
  rpc ChatService (stream ClientPost) returns (stream ServerReply);
}

// конец файла

  1. почему мне нужно установить опцию java_generic_services?

    класс ChatImpl extends grpc.Verbindung {@Override public void chatService (контроллер RpcController, запрос ClientPost, запрос RpcCallbackготово) {// почему я получаю такую ​​услугу?}}

// 2. почему я получаю другое имя класса?shut быть VerbindungImplBase

ожидаемая функция

public void sayHello(HelloRequest req, StreamObserver<HelloReply> responseObserver) { }
что я должен сделать, чтобы получить такую ​​ожидаемую сервисную функцию?

может быть неправильный компилятор Protoc / неправильная установка / недостающие части?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

У меня открытая система suse leap 42.2, эта версия ничего не знает о grpc - нет поддержки с этой стороны

я получаю скомпилированный протокол - он поставляется без необходимого плагина Java-gen

found https://github.com/grpc/grpc-java/blob/master/compiler/README.md

"Обычно вам не нужно самостоятельно компилировать кодоген, так как предварительно скомпилированные двоичные файлы для общих платформ доступны в Maven Central."

я нашел только несколько exeфайлы.- бесполезно

"Перейдите в каталог компилятора:"

У меня нет каталога компилятора.- все еще пытаюсь выяснить, где я могу получить

В NetBeans есть только плагин Editor для протофайлов - поэтому моя IDE не может обработать gRPC

, возможно, для других IDE плагины Maven для gRPCполезно

я ожидал, что у меня будет полноценный компилятор protoc со всеми необходимыми плагинами :-), а не приключение по установке инструментов.

a Момент для меня: gRPC - хорошая идея, но я получаю "установку"ГРПЦ "Приключение

0 голосов
/ 23 мая 2018

Вероятно, вы не используете генератор кода gRPC.Без полной настройки того, как вы работаете с protoc, я не могу указать слишком много деталей, но вы, вероятно, генерируете только сообщения protobuf через java_generic_services = true.

Вам не нужно java_generic_services = true.Вместо этого вы должны генерировать сообщения, как сейчас, но затем также использовать плагин grpc-java.Существует документация для при запуске protoc вручную , а наша основная документация описывает предпочтительный метод с использованием плагинов Maven или Gradle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...