【问题标题】:Java RMI with Scala, is this possible?带有Scala的Java RMI,这可能吗?
【发布时间】:2011-10-09 11:31:25
【问题描述】:

Java RMI -Remote Method Invocation- 仅适用于 Java 到 Java。

Scala 网站上,我了解到与 Java 的无缝集成:

Scala 程序在 Java VM 上运行,是与 Java 兼容的字节码,因此您可以充分利用现有的 Java 库或现有的应用程序代码。可以从 Java 调用 Scala,也可以从 Scala 调用 Java,无缝集成。

这是否意味着我可以成功地使用 Java 到 Scala RMI?

有人亲身试验过吗?

编辑:

任何已知或发现的陷阱??

【问题讨论】:

    标签: java scala integration rmi


    【解决方案1】:

    是的,这是link to a message thread where it looks like somebody's done it。它说:

    是的,它可以!感谢帮助。我现在有一对基于 RMI 的 Scala 程序,它们将执行从一个 Documentum 系统到另一个(以前版本的)文档的传输; Scala 代码与 Documentum Java 库的交互非常好。

    弄清楚如何让方法签名包含 throws RemoteException 似乎是最大的障碍。

    【讨论】:

      【解决方案2】:

      是的,这可以做到。 rmi 编译器使用 java 字节码,所以使用的语言真的无关紧要。我已经为一个班级项目做了这个。

      【讨论】:

      • 谢谢!我不熟悉 Scala;是否存在与使用两种不同语言或其他任何我应该注意的问题相关的问题?例如集合转换类型呢?
      • scala库里有scala list和java list(以及其他数据结构)的转换方法,所以这不是问题。
      • rmic 自 Java 1.5 以来已被弃用,因此实际上已经很久了。
      【解决方案3】:

      这取决于您使用的 RMI 库,但一般来说,答案是“是”。不过,请注意,如果您编写的方法返回(例如)像 scala.collections.immutable.List 这样的 Scala 集合,那么您的调用 Java 代码可能无法将其转换为 java.util.List

      【讨论】:

      • 我对 Scala 一点也不熟悉,为什么你认为我们会在两种 List 类型之间出现转换问题?
      • 您可以查看此问题了解更多详情:stackoverflow.com/questions/2429944/…。基本上,scala.collections.immutable.List 是不可变的(无法更改),而 java.util.List 通常不应该是不可变的。
      猜你喜欢
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2016-02-06
      • 2011-01-05
      • 2010-12-08
      • 1970-01-01
      相关资源
      最近更新 更多