当前位置: 首页 > 知识库问答 >
问题:

我无法生成gRPC存根类

姬捷
2023-03-14

我设法通过.proto文件生成了类,但它们在构建中。

我希望在main中生成类,因为当我要扩展存根时,不可能实现这些方法。

瞧:

文件.proto:

syntax = "proto3";

package demogrpcserver.tcp;

option java_multiple_files = true;
option java_package = "com.example.demogrpcserver";
option java_outer_classname = "tcp";

service TCPService {
  rpc execute(TCPMonitorRequest) returns (TCPMonitorResponse);
}

message TCPMonitorRequest {
  string socketOpen = 1;
  string messageType = 2;
}

message TCPMonitorResponse {
  bool success = 1;
  string txId = 2;
}

proto文件在主文件夹中。

有人知道怎么解决吗?

共有1个答案

谢阳曜
2023-03-14

您可以使用pom文件中的插件在src路径中自动生成proto文件。

<plugin>
            <groupId>com.github.os72</groupId>
            <artifactId>protoc-jar-maven-plugin</artifactId>
            <version>3.6.0.1</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <includeMavenTypes>direct</includeMavenTypes>

                        <inputDirectories>
                            <include>src/main/resources</include>
                        </inputDirectories>

                        <outputTargets>
                            <outputTarget>
                                <type>java</type>   <outputDirectory>src/proto/</outputDirectory>
                            </outputTarget>
                            <outputTarget>
                                <type>grpc-java</type>
                                <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.15.0</pluginArtifact>
                            <outputDirectory>src/proto/</outputDirectory>
                            </outputTarget>
                        </outputTargets>
                    </configuration>
                </execution>
            </executions>
        </plugin>

另外,在当前的设置下,您可以导入proto文件并对其进行扩展。

 类似资料:
  • 问题:我无法实现从protobuf自动生成的对象。 如何复制:从micronaut初始值设定项生成一个项目,该项目具有:gRPC应用程序类型、Java 11、Kotlin。添加io。grpc:protoc gen grpc kotlin正在构建中。gradle,构建它,添加一个控制器,然后尝试实现GrpcdemoServiceGrpcKt。 建筑格拉德尔 格拉德尔。属性 其余的都和micronau

  • 有一个目录 写入终端 我得到了错误 proc-gen-go:无效的Go导入路径"转发"为"proto/forward.proto" 导入路径必须至少包含一个正斜杠(“/”)字符。 看见https://developers.google.com/protocol-buffers/docs/reference/go-generated#package了解更多信息。 --go\u out:protoc

  • 我添加了maven配置,如下所示。 我正在通过“mvn proc-jar: run”执行它,但是它跳过了grpc服务存根,只将“消息”转换为java代码。 输出为 我有一个简单的proto文件定义为 我只输出生成为HelloReply、HelloReplyOrBuilder、HelloRequest、HelloRequestOrBuilder、HelloWorldProto的文件。缺少迎宾Grpc

  • 我刚刚将Visual Studio升级到2015 Pro版本,并安装了ReSharper9.0。现在,当我创建一些方法时,我不能像下面所示那样生成方法存根 Visual Studio 2015不显示生成方法存根的解决方案。即使是resharper也不会在左边显示灯泡。 另一件事:

  • 作为第一步,我使用了Quarkus Openapi指南:https://Quarkus.io/guides/openapi-swaggerui,但是在运行未修改的示例并通过http://localhost:8080/Openapi检索Openapi YAML-Data之后,我注意到生成的数据是错误的,并且Openapi生成器由于stackoverflow错误而无法生成客户端。 问题:SetFrui

  • 问题内容: 我有一个兼容ejb-3的ejb,例如 我需要为此EJB生成存根。但我不想使用Websphere工具或Maven工具。有什么方法可以使用jdk生成存根吗? 创建远程客户端时 可以在weblogic或jboss中工作,但是在websphere中,即使是ejb 3,您也需要这样编写 在这种情况下,如果客户端不存在存根,它将抛出异常,这是一种使用Websphere ejb存根生成器工具生成存根