加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java 9中是否有替代使用RMI的HTTP隧道?

发布时间:2020-12-14 16:44:37 所属栏目:Java 来源:网络整理
导读:所以我看到在 Java 9中已经删除了通过RMI的HTTP隧道. 我们销售在Tomcat中运行的商业Java软件.我们的客户在Mac,Windows和Linux服务器上安装它.然后,公众使用Java Swing客户端界面访问该软件.它使用RMI与服务器软件进行通信. 我们的大多数客户都有防火墙阻止在
所以我看到在 Java 9中已经删除了通过RMI的HTTP隧道.

我们销售在Tomcat中运行的商业Java软件.我们的客户在Mac,Windows和Linux服务器上安装它.然后,公众使用Java Swing客户端界面访问该软件.它使用RMI与服务器软件进行通信.

我们的大多数客户都有防火墙阻止在80/443以外的任何端口上访问服务器.这对于Java 8及更早版本来说不是问题,它可以在动态端口上使用RMI,或在防火墙阻止访问时切换到HTTP.

但是,删除Java 9中的HTTP代理功能意味着我们的大多数客户将无法再使用我们目前构建的软件.对于我们的客户来说,为公共SSH访问配置防火墙和服务器是不切实际和不安全的,特别是对于运行Windows服务器的客户.

这是否意味着我们需要重写我们的应用程序架构以使用除RMI之外的某些网络协议?或者有没有办法将RMI保留在Java 9中?完全抛弃RMI需要完全重写面向用户的应用程序代码,并且不是一种经济高效的选择.

解决方法

似乎 JDK-8023862已经弃用了来自RMI的HTTP代理,如Java8的 release notes中所述.

正如#JDK8180642中所建议的,它还询问了从RMI中删除HTTP代理实现的替代方法.其中一个替代方案可能是use ssh to tunnel through the proxy.

Use ssh to establish a local port that is tunneled through the proxy
to the remote machine.
The connection will be more functional than the HTTP proxy implementation.

在链接链接中,您可以在how can one make outgoing Java RMI calls through a local firewall?找到一篇文章,其中建议其他实现,如SOCKS和套接字工厂.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读