2015-12-11 1 views
-3

Я не знаю, что происходит. Код выполняется в течение 8-16 часов, а затем останавливает выполнение программы. Зачем? Может ли кто-нибудь помочь в этом?Исключение в теме "main" java.net.NoRouteToHostException: Нет маршрута для размещения

Exception in thread "main" java.net.NoRouteToHostException: No route to host 
    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:392)  
    at java.net.Socket.connect(Socket.java:579) 
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:133) 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) 
    at example.producer.Spout6.main(Spout6.java:79) 
+0

Как насчет кода? – Rufi

+1

Возможный дубликат http://stackoverflow.com/questions/27221290/noroutetohostexception-in-client – Rufi

+3

Рассмотрите возможность того, что «нет маршрута к хосту» на самом деле означает «нет маршрута к хосту» - в настоящее время сообщение не указывает, что это не так (ни какое-либо исследование, чтобы доказать/опровергнуть это) –

ответ

0

Может быть брандмауэр ... Или что-то вроде интернета ... Или слишком много портов ... Вот детали:

Сигналы, что произошла ошибка при попытке подключить разъем до удаленный адрес и порт. Как правило, удаленный хост не может быть достигнут из-за промежуточного межсетевого экрана или если промежуточный маршрутизатор не работает.

Java Docs

Кроме того, вы можете быть запущен из доступных портов:

Другим важным ветвление диапазона временных портов является то, что он ограничивает максимальное количество соединений с одного компьютера на конкретный сервис на удаленном компьютере! Протокол TCP/IP использует 4-кортеж соединения , чтобы различать соединения, поэтому, если диапазон эфемерных портов составляет всего 4000 портов, это означает, что может быть только 4000 уникальных соединений с клиентской машины на удаленную услугу в одно время. (http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html)

ли это, чтобы получить доступные порты для проверки:

$ cat /proc/sys/net/ipv4/ip_local_port_range 
32768 61000 

Примечание:

Это, конечно, не проблема с кодом, вместо этого, попытайтесь держите хорошим подключением, изменяя настройки брандмауэра или усиливая соединение. Кроме того, проверьте доступные порты, выполнив то, что я сказал вам выше.

+0

java.net.UnknownHostException: api.twitter.com \t в java.net.InetAddress.getAllByName0 (InetAddress.java:1280) \t в java.net.InetAddress. getAllByName (InetAddress.java:1192) \t at java.net.InetAddress.getAllByName (InetAddress.java:1126) можете ли вы помочь мне в этом, как его переустановить? Ruchir Baronia –

+0

@syedjameer, вероятно, проблема с подключением ... См. мой ответ. Если это полезно, нажмите галочку, чтобы принять его. –

2

Исключение обычно указывает на проблему сетевой маршрутизации. Это может быть результатом проблемы с сетевой конфигурацией в вашей локальной сети или глобальной сети, или это может быть связано с сетевой связью или отключением коммутатора. Это может быть причиной неудачи хоста, с которым вы пытаетесь поговорить.

ИМО, это вряд ли будет проблемой сетевого брандмауэра, хотя это также возможно. (Как правило, брандмауэр будет просто отбрасывать пакеты для блокировки трафика, и что, скорее всего, приведет к времени ожидания подключения. Однако брандмауэра может реагировать с назначением недостижимым пакетом, который приведет к этому исключению.)

+0

java.net.UnknownHostException: api.twitter.com \t на java.net.InetAddress.getAllByName0 (InetAddress.java:1280) \t на java.net.InetAddress.getAllByName (InetAddress.java:1192) \t на Java .net.InetAddress.getAllByName (InetAddress.java:1126) вы можете помочь в решении этого вопроса. Stephen C –

+0

Вероятно, у вас проблемы с конфигурацией вашего DNS-преобразователя, конфигурациями вашей сети, конфигурациями вашего маршрутизатора или вашим интернет-провайдером. Сообщение происходит, потому что попытка поиска «api.twitter.com» в DNS не удалась. Спросите у ServerFault или SuperUser, а не здесь. –

+0

Спасибо Stephen C. Это означает, что у них нет проблем с правом кода, которое необходимо изменить со стороны сервера, или им нужно изменить код. вы можете мне помочь? Stephen C –

0

Это может быть проблема с

брандмауэра

Если вы используете Linux, то выполните следующие действия:

остановить брандмауэр:> сервис Iptables остановить

позволяют порт, который вы хотите подключиться на хосте:> UFW позволить [port_number ]

Смежные вопросы