java - NAT 连接后面的 RMI 服务器拒绝托管

标签 java rmi

我有这个 RMI 服务器,我正尝试从家里连接到它,但我收到此错误消息:

java.rmi.ConnectException:连接拒绝主机:XX.XXX.XX.XXX;嵌套异常是:java.net.ConnectException:连接超时:连接

public GUILogic(GUI gui) throws NotBoundException, MalformedURLException, RemoteException{
        super();
        this.gui = gui;  
        String objectname = "chatter";

        String url = "rmi://" + hostname + "/" + objectname;

        cf = (ChatFront) Naming.lookup(url);


    }

当我尝试 http://www.canyouseeme.org/ 时,我已将端口转发到端口 1099(在服务器计算机上) ,我找到了端口。我的计算机和服务器上的每个防火墙都已关闭。如果我将它设置在 LAN 上,服务器工作正常。

可能是什么问题?

最佳答案

我遇到了完全相同的问题。

我通过设置一个主机名来修复它,它可以被服务器(在 NAT 之后)和客户端解析。

然后,我在 java 命令行中将此 arg 添加到服务器:

-Djava.rmi.server.hostname=yourhostname

它奏效了。

在服务器端,一个简单的 getRegistry 工作得很好。

Registry registry = LocateRegistry.getRegistry();

不要忘记 nat 注册表和导出的对象端口。

关于java - NAT 连接后面的 RMI 服务器拒绝托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036978/

相关文章:

java - 根据JAVA成绩比较学生

java.rmi.ServerException : RemoteException occurred in server thread (ClassNotFoundException)

java - 简单的双向 RMI SSL 连接,PKIX 路径构建失败

java - 基础测试类中的@Value 注释不从属性文件中注入(inject)值

java - 使用java rmi协议(protocol)将文本文件内容解析到客户端窗口?

rmi - JMX RMI 代理容错机制

java - Eclipse 找不到 java.rmi.Remote 类

java - 如何将脚本标记为失败但不中止 Selenium 中当前测试用例的执行?

java - 如何将 RelativeLayout(来自 XML)添加到我以编程方式定义的 LinearLayout?

java - 有什么办法可以将顶级类(class)设为私有(private)吗?