的java.net.UnknownHostException

我正在使用jdk1.6.0_23安装CSVN,并且出现以下Java错误:

2011-02-10 16:25:50,951 [WrapperJarAppMain] WARN util.GrailsUtil - [WARNING] Property [ldapServerPort] of domain class com.collabnet.svnedge.console.Server has type [int] and doesn't support constraint [nullable]. This constraint will not be checked during validation. 2011-02-10 16:25:51,117 [WrapperJarAppMain] ERROR ehcache.Cache - Unable to set localhost. This prevents creation of a GUID. Cause was: vkqgae01: vkqgae01 java.net.UnknownHostException: vkqgae01: vkqgae01 at java.net.InetAddress.getLocalHost(InetAddress.java:1354) at net.sf.ehcache.Cache.<clinit>(Cache.java:143) 

我的服务器有3个网卡(eth0,eth1和eth2)。 我已经添加了一个条目到主机文件bellow localhost包含以下内容:127.0.0.1 vkqgae01

我可以成功ping通vkqgae01,但nslookup无法解决它。

有任何想法吗?

这与…有关

主机名

/ etc / hosts文件

如果/ etc / hosts不包含主机名的定义,则失败。 只需将你的主机名添加到/ etc / host,例如你的主机名是工作添加或修改下面一行:

 127.0.0.1 work localhost 

我可以成功ping通vkqgae01,但nslookup无法解决它。

有任何想法吗?

怎么了?

  • 由于您的主机文件, vkqgae01在本地解决。
  • nslookup发送一个查询到您的DNS,其中vkqgae01是未知的。

build议:vkqgae01添加到您“使用”的每台机器的hosts文件中。
基本上,vkqgae01上的本地主机文件包含127.0.0.1 localhost vkqgae01并不能帮助其他机器解决它的名字。

在/ etc / hosts中添加下面的行,它就起作用了。

imac

nslookup具体直接查询DNS。 这意味着它将不能显示任何直接添加到/ etc / hosts文件(因为这不是DNS)。 如果你想确保你的系统能够parsing一个名字,使用getent:'getent hosts vkqgae01'

如果/ etc / hosts被更改,则需要重新启动容器,只要JVM在第一个InetAddress调用中caching本地地址/名称即可。 它看起来像InetAddress实现的错误,但仍然没有修复。