【问题标题】:proto generated java imported from a jar fileproto 生成从 jar 文件导入的 java
【发布时间】:2020-03-18 14:05:13
【问题描述】:

我使用 maven 插件“org.xolstice.maven.plugins”创建了 proto 生成的 java 文件 jar 文件。 它包含所有需要并导入到具有 maven 依赖项的项目中的 java 文件。没有编译问题。执行时出现 UNIMPLEMENTED 异常。

Caused by: io.grpc.StatusRuntimeException: UNIMPLEMENTED: Method not found!
    at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:240)
    at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:221)
    at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:140)

我尝试放置 protoc 生成的文件,它按预期工作。但我不希望这成为项目内部的 java 源代码。因为生成的源代码有非常大的 java 文件进行编译,所以每次构建都需要很长时间,所以我需要它作为一个 jar 文件。

【问题讨论】:

  • 如果它编译但随后出现此错误,这意味着它正在类路径中找到该类的不同版本。如果您的 IDE 具有依赖项评估工具,那将有所帮助。否则,您可以在调试器中找到它。我建议您在失败的调用之前添加对同一类的不同调用,跟踪它,然后让您的 IDE 跳转以在项目或文件视图中显示您所在的文件。你可能会跳到一个你意想不到的地方,这会告诉你它是如何找到那个版本的课程的。

标签: java protocol-buffers grpc grpc-java proto


【解决方案1】:

看起来您正确构建了 Java 客户端。 UNIMPLEMENTED 表示服务器不支持该方法。仔细检查方法/服务是否已在服务器上注册。还要仔细检查您是否使用与服务器相同的.proto,这意味着.proto 中的原始package 语句也应该匹配。

看来Method not found!Python servers 独有的,因此正在发生通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2021-04-17
    • 2018-07-19
    • 1970-01-01
    • 2016-02-01
    • 2016-12-08
    • 2020-02-13
    相关资源
    最近更新 更多