java.rmi.ConnectException: подключение отказалось от хоста: 127.0.1.1;

java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: java.net.ConnectException: Connection refused 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) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy0.notifyMe(Unknown Source) at CallbackServerImpl.doCallback(CallbackServerImpl.java:149) at CallbackServerImpl.registerForCallback(CallbackServerImpl.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.(Socket.java:425) at java.net.Socket.(Socket.java:208) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) ... 23 more 

Я получаю это исключение, когда пытаюсь подключить удаленный клиент к моему серверу. В обоих серверах и клиенте hostName для registryUrl rmi является общедоступным IP-адресом сервера. Я также попытался поставить localhost на сервер, но ошибка не изменилась.

Моя java.policy настроена на предоставление всех подключений ко всем портам, и у меня нет брандмауэров, включенных на сервере или клиенте.

Любые предложения, что может быть?

8 Solutions collect form web for “java.rmi.ConnectException: подключение отказалось от хоста: 127.0.1.1;”

Это пункт A.1 в FAQ RMI . Вам нужно либо исправить файл / etc / hosts, либо установить свойство java.rmi.server.hostname на сервере.

ЗАДАЧА РЕШЕНА

У меня была такая же ошибка. Когда удаленный объект получил привязку к rmiregistry, он был связан с IP-адресом loopback, который, очевидно, завершится неудачей, если вы попытаетесь вызвать метод с удаленного адреса. Чтобы исправить это, нам нужно установить свойство java.rmi.server.hostname на IP-адрес, где другие устройства могут достигнуть вашей rmiregistry по сети. Он не работает, когда вы пытаетесь установить параметр через JVM. Это сработало для меня, просто добавив следующую строку в мой код перед привязкой объекта к rmiregistry:

System.setProperty("java.rmi.server.hostname","192.168.1.2");

В этом случае IP-адрес локальной сети ПК, связывающий удаленный объект с реестром RMI, – 192.168.1.2.

Я нашел много вопросов и ответов на эту тему, ничто не помогло мне – это потому, что моя проблема была более базовой (что я могу сказать, что я не сетевой гуру :)). Мой IP-адрес в / etc / hosts был неправильным. Я попытался включить CATALINA_OPTS следующее:

 CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true -Xmx128M -server -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=ABCD" #howeverI put the wrong ip here! export CATALINA_OPTS 

Моя проблема заключалась в том, что я много месяцев назад менял свой IP-адрес, но никогда не обновлял файл / etc / hosts. кажется, что по умолчанию jconsole использует имя-i-ip-адрес в некотором роде, хотя я просматривал локальные процессы. Лучшим решением было просто изменить файл / etc / hosts.

Другим решением, которое может работать, является получение вашего правильного IP-адреса из / sbin / ifconfig и использование этого IP-адреса при указании IP-адреса, например, в скрипте catalina.sh:

 -Djava.rmi.server.hostname=ABCD 

Возможно, ваша rmiregistry не будет создана до того, как клиент попытается подключиться к вашему серверу, и это приведет к этому исключению. В Linux вы можете использовать «netstat», чтобы проверить, что ваша rmiregistry должна быть связана на правом порту, который вы назначили в Java-коде.

Если вы пробовали модифицировать etc / hosts и добавили свойство java.rmi.server.hostname, но все же реестр привязан к 127.0.0.1

проблема для меня была решена после явного задания свойства System через код, хотя одно и то же свойство не было выбрано из jvm args

Если вы работаете в среде Linux, откройте файл /etc/hosts.allow добавьте следующую строку

 ALL 

Wildcards

Также проверьте /etc/hostname и /etc/host чтобы узнать, может ли быть что-то не так.

Мне пришлось изменить свой / etc / host из

 127.0.0.1 localhost 127.0.1.1 AMK 

в

 127.0.0.1 localhost 127.0.0.1 AMK 

также написал во ALL в файле /etc/hosts.allow который был ранее полностью пуст

Теперь все работает

не знаю, насколько это безопасно. вам нужно больше узнать о возможных вариантах /etc/hosts.allow чтобы сделать что-то, что требует безопасности.

Он работает для меня после избавления от «:: 1» в / etc / hosts.

когда вы хотите подключиться к удаленному серверу с помощью RMI, вы должны добавить системное свойство, такое как:

 System.setProperty("java.rmi.server.hostname","Ip or DNS of the server"); 

или добавить переменную среды.

Для меня я получил Connection Refused и решил его, добавив эту строку кода на стороне сервера:

  java -jar -Djava.rmi.server.hostname="ip or dns of the server" packageName.jar 

Спасибо другому парню за руководство, чтобы решить его.

  • проверить подключение к Интернету в cocoa-приложении
  • Как несколько клиентов одновременно подключаются к одному порту, например 80, на сервере?
  • Как немедленно закрыть сервер HTTP (Node.js)?
  • В чем разница между соединением и таймаутом чтения для сокетов?
  • Мгновенно обнаруживать отключение клиента от серверного сокета
  • Запустить командный файл с командой psql без пароля
  • Java обнаруживает потерянное соединение
  • mySQL - создание новой таблицы с использованием данных и столбцов из трех таблиц
  • Строка подключения с относительным путем к файлу базы данных
  • Interesting Posts

    Как лучше всего клонировать запущенную систему на новый жесткий диск с помощью rsync?

    Сколько способов конвертировать bitmap в строку и наоборот?

    Windows 7 не может автоматически подключаться к сетевому диску SAMBA с использованием общих учетных данных SAMBA

    Как получить текущий URL-адрес вкладки для расширения chrome?

    Power BI Встраивание URL-множественных фильтров

    Почему нет назначения-назначения / move-constructor по умолчанию?

    Сканер next () бросает NoSuchElementException для некоторых онлайн-компиляторов

    Как получить все группы AD для определенного пользователя?

    Как отобразить содержимое строки html в элементе управления webbrowser?

    Как вывести файл Excel * .xls из classического ASP

    Reactjs – настройка состояния из реквизита с использованием setState в дочернем компоненте

    Что подразумевается под инициализацией ресурсов (RAII)?

    Использование контейнеров IoC; в частности, Виндзор

    Есть ли способ имитировать несколько iphones с помощью xcode / iphone sim?

    Bios / Windows не может обнаружить мой плохой жесткий диск

    Давайте будем гением компьютера.