如何在防火墙后面使用RMI和applet客户端?
如何将RMI与防火墙服务器和防火墙applet客户端一起使用? (如果可能的话)
我知道RMI服务器使用端口1099(默认情况下,这是可配置的);但是在此之后,通信需要在不同的随机端口上使用新的套接字。我也知道你可以在客户端上为RMI over HTTP隧道设置代理,这在理论上应该解决我的问题。但我无法使其工作(我尝试在我的XP客户端上设置环境属性,但Internet Explorer一直忽略它们。)
答案 0 :(得分:6)
答案 1 :(得分:1)
如果服务器代码在您手中,您还可以通过提供自定义RMISocketFactory来限制RMI使用预定义端口,如下所述:http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html
(特别注意如果并行使用JMX可能会导致问题的提示)
答案 2 :(得分:0)
还没有深入了解我的自我,但在寻找我正在做的项目时,我来到了LipeRMI。
您可能希望看一下它,因为它面向互联网使用,并提到“以这种方式影响客户端,他们可以在本地网络,路由器或防火墙之后;”
编辑:
回想起我前来遇到的另一个名为RMI Doves 1.0: Solution for Java RMI firewall problem的实现,您可能也希望看一下这个实现。
答案 3 :(得分:0)
将代码放在这样的代码:
RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);