7

如何将 RMI 与防火墙后面的小程序客户端一起使用?

如何将 RMI 与防火墙服务器和防火墙 applet 客户端一起使用?(如果可能的话)

我知道 RMI 服务器使用端口 1099(默认情况下,但这是可配置的);但是在此之后,通信需要在不同的随机端口上使用新的套接字。我也知道您可以在客户端上为 RMI over HTTP 隧道设置代理,这在理论上应该可以解决我的问题。但我无法让它工作(我尝试在我的 XP 客户端上设置环境属性,但 Internet Explorer 一直忽略它们)。

4

4 回答 4

7

请参阅http://java.sun.com/javase/6/docs/technotes/guides/rmi/faq.html#firewall

于 2009-02-01T11:02:58.793 回答
1

如果服务器代码在您手中,您还可以通过提供自定义 RMISocketFactory 来限制 RMI 使用预定义端口,如下所述:http: //insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing .html

(特别注意如果并行使用 JMX 可能会导致问题的提示)

于 2012-02-02T11:30:51.860 回答
0

还没有深入了解我自己,但是在四处寻找我目前正在做的项目时,我遇到了LipeRMI

你可能想看看它,因为它面向互联网使用,并提到“以这样的方式隐藏客户端,它们可以位于本地网络、路由器或防火墙后面;”

编辑:

记得我不久前遇到的另一个实现,称为RMI Doves 1.0:Java RMI 防火墙问题的解决方案,您可能也想看看那个。

于 2009-02-01T11:11:11.770 回答
0

在您的服务器中输入如下代码:

RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);
于 2013-04-19T00:57:53.077 回答