【问题标题】:Alternatives to RMIRMI 的替代品
【发布时间】:2014-03-25 07:44:54
【问题描述】:

我有一个小型 Java SE 应用程序,它实际上是一个位于数据库之上的胖客户端。为了进一步提高我的 Java 技能,我决定用它制作一个客户端-服务器应用程序。服务器应用程序与数据库通信并处理各种冗长的操作,而客户端应用程序只接收结果,主要是长度适中的 ArrayList 和原语。

为此,我开始阅读 RMI 并完成了 Oracle 教程,我发现这些教程非常难以理解,甚至无法开始工作。

还有什么可以代替 RMI 的,而无需深入研究 JavaEE?

【问题讨论】:

  • 网络服务;试试球衣教程;它是基于注释的,需要很少的管道
  • 可能是错误的论坛,vaadin 是一种完全不同的方法,尽管它基于 JavaEE。 JavaFX 可能很有趣。
  • 当涉及到两个Java SE应用程序之间的通信时,RMI是一种标准的方式。您不了解 RMI 的哪一部分?
  • @Santosh:如今 RMI 的使用频率并不高。 REST/JSON 被越来越多地使用,因为它们可以与其他非 Java 平台一起使用。
  • 虽然我知道不想深入了解 Java EE 的底层细节,但在 Spring Boot 上使用像 Tomcat 这样的自动配置嵌入式 Web 服务器是否可行?此选项允许您创建 HTTP API,只需很少或不需要服务器配置和简单的控制器代码。

标签: java rmi


【解决方案1】:

我建议的一种方法是使用JSON 作为数据交换的格式。您可以使用GSON 将数据从Java 对象转换为JSON 并返回。传输可以使用REST 直接在HTTP 协议上完成。您可以将Jersey 用作 REST 服务器/客户端或自行开发(因为您不想使用 JEE,JEE 是其中的一部分)。

【讨论】:

  • OP 不想使用 J2EE。这需要一个网络容器。
  • @Santosh:不是这样。如果愿意,可以使用 JSON 作为从头编写的客户端和服务器之间的数据传输协议。
  • 是的,但这需要 OP 编写一个可以服务于 REST(通过 HTTP)的服务器。客户还会如何请求数据?
  • @Santosh:可以用 Java 轻松编写一个非常简单的 REST 服务器。但显然,这太简单了,而且容易出错。最好使用 Jersey 甚至 Servlet 之类的东西并以 JSON 格式发送响应。
  • 没错,我支持你,但 OP 不想使用 J2EE。这意味着没有 servlet 容器。
【解决方案2】:

SIMON 与 RMI 一样简单易用,但初始设置中的陷阱更少。与 RMI 相比,它也有一些优势。这是一个简单的 hello-world 示例:

http://dev.root1.de/projects/simon/wiki/Sample_helloworld110

【讨论】:

    【解决方案3】:

    我认为 RMI = 远程方法调用 ...

    您可以查看XMLRPCJSONRPCJMS,或者如果您想自己滚动,请使用 JSON 到 POST 消息并将 JSON 转换回另一端的 java 对象使用 GSON(来自 Google)或设置 RabbitMQ 并使用 AMQP 提交和接收消息,如果您不想自己处理 POST,Spring AMQP 可以很容易地做到这一点。

    【讨论】:

    • 你认为这比 RMI 简单吗?
    • 它们都很容易实现,尤其是滚动你自己的 JSON 服务。
    • 我们将不胜感激。
    • 每个链接已经有例子了,要找具体的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2012-01-25
    • 2015-08-05
    相关资源
    最近更新 更多