Java docker 与 jar 加载 main

标签 java maven grpc

在 Java 中运行基于 gRPC 的 Java 客户端服务器应用程序。我能够为服务器生成 stub ,但是当涉及服务内通信时,我无法为恰好是在 Wildfly 中运行的 war 文件的客户端应用程序生成 stub 。这是概述。

  1. 服务器 -> 产品(在容器中运行的 Jar)

  2. 客户端 -> 在 Wildfly 上运行的 War 文件

客户端正在公开一个休息端点,该端点依次调用服务器。

我的理解是我应该在1和2之间共享proto文件。以下proto被复制到src/main/proto下的1和2

service ProductService {
    rpc findAll(google.protobuf.Empty) returns (Product);
}

message Product {
    string id = 1;
    string name = 2;
}

问题。我的理解是否正确:在两个独立的应用程序之间共享协议(protocol)文件,然后通过生成的 stub 在两个应用程序之间进行通信。

最佳答案

共享 .proto 就可以了。您还可以将生成的代码放入客户端和服务器共享的库中。您还可以将 .proto 放入客户端和服务器构建进程都使用的共享位置(例如存储库)。

复制原型(prototype)既简单又有效。您只想确保您知道原型(prototype)的“规范”版本是什么;您想知道应该首先更新哪个版本,以便您知道原型(prototype)的最新版本。您不希望客户端维护者和服务器维护者都对原型(prototype)进行更改,然后需要弄清楚如何合并更改。

关于Java docker 与 jar 加载 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58689254/

相关文章:

Eclipse m2e-wtp插件不断覆盖application.xml

go - 用gRPC推送数据可以吗?

node.js - npm 安装 angularfire2 和 firebase 时出错

java - 如何在给定字符串的特定位置插入十六进制字节

java - Java 和 PHP 的简单解密/加密

java - 我想检查用户插入的文件名是否与目录中的文件名匹配

java - 我是否需要安装 Apache Spark 和/或 Scala 才能运行 jUnit?

java - Maven 项目中的 JUnit 5 测试可以在 IntelliJ 中运行,但不能在命令行中运行

reactjs - React 中的 gRPC 流无法按预期工作

java - 针对 XSD java 验证 XML