现象:在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.

Debian部署RMI异常:java.rmi.ConnectException: Connection refused to host: 127.0.1.1;的更多相关文章

  1. 调用远程主机上的 RMI 服务时抛出 java.rmi.ConnectException: Connection refused to host: 127.0.0.1 异常原因及解决方案

    最近使用 jmx 遇到一个问题,client/server 同在一台机器上,jmx client能够成功连接 server,如果把 server 移植到另一台机器上192.168.134.128,抛出 ...

  2. 异常 java.net.ConnectException: Connection refused: no further information

    java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImp ...

  3. springcloud 向Eureka中注册服务异常java.net.ConnectException: Connection refused: connect

    异常如下: 通过debug发现,服务端的url地址仍然是默认的http://localhost:8761/eureka/apps/,也就是说yml文件中配置没有生效,检查后发现yml中相关配置多写了一 ...

  4. JMS集群部署问题 java.net.ConnectException: Connection refused; No available router to destination

    1:本地spring配置如下 <!-- JndiTemplate --> <bean id="jndiTpl" class="org.springfra ...

  5. 异常-CDH的service无法启动并抛出异常-org.apache.avro.AvroRemoteException: java.net.ConnectException: Connection refused (Connection refused)

    1 详细异常 org.apache.avro.AvroRemoteException: java.net.ConnectException: Connection refused (Connectio ...

  6. 出现 java.net.ConnectException: Connection refused 异常的原因及解决方法

    1 异常描述 在启动 Tomcat 服务器的时候,控制台一直输出异常信息,然后停止服务器,报出如下异常: 2 异常原因 通过观察上图中被标记出来的异常信息,咱们可以知道 java.net.Connec ...

  7. java.net.ConnectException: Connection refused 异常

    错误信息: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native ...

  8. Call From master/192.168.128.135 to master:8485 failed on connection exception: java.net.ConnectException: Connection refused

    hadoop集群搭建了ha,初次启动正常,最近几天启动时偶尔发现,namenode1节点启动后一段时间(大约10几秒-半分钟左右),namenode1上namenode进程停掉,查看日志: -- :: ...

  9. [已解决] java.net.ConnectException: Connection refused: no further information

    程序抛出这个异常的原因多数是因为在此[host:port]没有监听,那么该如何解决这个问题呢,如下 第一个要做的是看你的host和port是否写错了,如 [ 127.00.1:8080 ] 第二个要看 ...

随机推荐

  1. KingbaseES的DBLink创建

    创建一个KDB库,建立dblink,需要在KDB库内访问KINGBASE库中的数据: KINGBASE=#CREATE DATABASE KDB [kingbase@localhost config] ...

  2. Flex 数据绑定

    Flex 数据绑定 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:f ...

  3. Flex 开发框架汇总

    1.现有成熟Flex框架   Cairngorm (Adobe Open Source) - MVC framework   PureMVC (Open Source) - MVC framework ...

  4. 详解googe Chrome浏览器(理论篇)

    开篇概述 1详解google Chrome浏览器,这个标题似乎抽象了一些,我想应该把它拆分成如下几个问题,也许会更加理解一些. 问题1:目前开发中,主选浏览器有Google Chrome,IE,Fir ...

  5. 笔记:Spark简介

    Spark简介 [TOC] Spark是什么 Spark是基于内存计算的大数据并行计算框架 Spark是MapReduce的替代方案 Spark与Hadoop Spark是一个计算框架,而Hadoop ...

  6. DOM范围

    前面的话 为了让开发人员更方便地控制页面,DOM定义了“范围”(range)接口.通过范围可以选择文档中的一个区域,而不必考虑节点的界限(选择在后台完成,对用户是不可见的).在常规的DOM操作不能更有 ...

  7. 网络攻击技术开篇——SQL Injection

    本文转自: http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户数据库 ...

  8. 【微信开发】玩转PHP 数组用法!

    数组的起始下标可以不从0开始,例子为从2开始. $data = array(2=>'A','B','C');     运行结果:$data = array(2=>'A',3=>'B' ...

  9. 初学HTML5

    Document 什么是HTML5? 首先了解html:html即超文本语言,这是一种语法简单.结构清晰的语 解析型文档,他不同于其他的编程语言. html5就是html网页标记语言的第五次重大更新产 ...

  10. php连接 mysql 数据库

    php 连接数据库 一般是用面向对象的方法,需要先创建一个对象,即造一个连接对象,然后再写sql语句,(增改查删),最后执行sql语句 其中在创建连接对象时 我们用到的是MySQLI  是不区分大小写 ...