zoukankan      html  css  js  c++  java
  • Debian部署RMI异常:java.rmi.ConnectException: Connection refused to host: 127.0.1.1;

    现象:在windows上部署RMI很顺利,但移到debian上部署后,客户端报异常:

    java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
    java.net.ConnectException: Connection refused: connect
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128)

    原因:这个问题其实是由rmi服务器端程序造成的。 客户端程序向服务端请求一个对象的时候,返回的stub对象里面包含了服务器的hostname,客户端的后续操作根据这个hostname来连接服务器端。要想知道这个hostname具体是什么值可以在服务器端bash中打入指令:hostname -i 如果返回的是127.0.1.1,那么你的客户端肯定会抛如标题的异常了。

    如果你查看debian的/etc/hosts就能发现

    127.0.0.1 localhost
    127.0.1.1 debian

    127.0.0.1这个loopback地址很常见,就是本地接口的回路/回环地址。而127.0.1.1,这又是什么地址呢?

    这也是个本地回路/回环地址。出现这个地址的原因是因为有些应用程序需要规范的全限定域名FQDN(Fully Qualified Domain Name),FQDN不只需要主机名还需要主机域名,其表达形式为hostname.domainname

    如果你的主机有一个静态IP地址,则FQDN名字解析到这个静态地址,否则解析到127.0.1.1这个本地回路地址。所以一般情况下不会看到127.0.1.1这个地址。当然并一定非要用127.0.1.1这个IP,RFC规定的127.0.0.0/8这个IP段内的任意IP都可以,只要没有冲突,debian选择了127.0.1.1。

    解决:只要把127.0.1.1改为你真实的IP即可,如10.9.146.131.

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Delphi 中流的使用
    关于 Delphi 中流的使用(9) 分割与合并文件的函数
    基于Windows字库的点阵数据提取方法
    Oracle 后台进程介绍
    面试-MySQL
    怎样预置桌面上的应用程序图标、快捷方式图标或者窗体小部件?
    配置 Phpstorm + Xdebug + xampp
    [jQuery] 选择器和事件
    数据挖掘算法学习(四)PCA算法
    基础数位DP小结
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4621209.html
Copyright © 2011-2022 走看看