Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未知后异常和/etc/hosts_Java_Linux_Host_Hosts_Jedis - Fatal编程技术网

Java 未知后异常和/etc/hosts

Java 未知后异常和/etc/hosts,java,linux,host,hosts,jedis,Java,Linux,Host,Hosts,Jedis,我在/etc/hosts文件中有记录,其中包含host name.com 但我有时会得到未知的后异常,比如: redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: host-name.com at redis.clients.jedis.Connection.connect(Connection.java:137) at redis.clients.jedis.B

我在/etc/hosts文件中有记录,其中包含
host name.com
但我有时会得到未知的后异常,比如:

redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: host-name.com 
  at redis.clients.jedis.Connection.connect(Connection.java:137) 
  at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:65) 
  at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1706) 
  at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:28) 
  at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188) 
  at redis.clients.util.Pool.getResource(Pool.java:38) 
    ... 2 common frames omitted 
Caused by: java.net.UnknownHostException: host-name.com 
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178) 
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
  at java.net.Socket.connect(Socket.java:579) 
  at redis.clients.jedis.Connection.connect(Connection.java:132) 
    ... 7 common frames omitted
这是怎么可能的,我该怎么解决

  • 带UNSD的Linux 3.2(Debian稳定版)
  • java 1.7.0_45,带有
    -Djava.net.preferIPv4Stack=true
  • /etc/nsswitch.conf有一行
    hosts:files-dns
  • /etc/hosts权限
    -rw-r--r--

“有时”:这是否意味着它有时可以工作,但在其他时候不能使用相同的主机名?是的,它大部分都可以工作(大约99%的情况下),但有时使用相同的主机名会失败尝试断开计算机与网络的连接,然后查看是否出现
UnknownHostException
。当计算机断开连接时,我得到的是
java.net.SocketException:网络无法访问
好的,不知道为什么这个问题会被关闭,但我有完全相同的情况,答案是:您的文件描述符限制被超过(或几乎超过)。系统无法读取主机文件,因为它需要一个可用的文件描述符来打开它。不幸的是,UnknownHosteException异常具有误导性。当我用IP地址替换主机名时,我开始得到“太多打开的文件”。