Linux环境下C3P0 Failed to get local InetAddress for VMID 解决办法

        今天在做一个Java项目中用到了C3P0数据源,程序在Windows下运行没有任何问题,但是往服务器(Linux环境)上部署 运行的时候出现异常了,异常信息如下:

2014-08-19 20:51:01 [INFO] Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomness
java.net.UnknownHostException: w: w
	at java.net.InetAddress.getLocalHost(Unknown Source)
	at com.mchange.v2.c3p0.impl.C3P0ImplUtils.generateVmId(C3P0ImplUtils.java:120)
	at com.mchange.v2.c3p0.impl.C3P0ImplUtils.<clinit>(C3P0ImplUtils.java:98)
	at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:227)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:62)
	at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:109)
	at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:105)
	.......
Caused by: java.net.UnknownHostException: w
	at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
	at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
	at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
	... 23 more

      

        乍一看感觉莫名其妙,从来都没碰到过这样的异常,最后在Google上找到了解决办法,先说明一下导致这个异常的原因,然后给出解决办法。

问题原因

         先看看UnknownHostException: w 中w是怎么得来的吧,cat /etc/sysconfig/network 文件,内容如下:

[root@w picture]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=w

          HOSTNAME=w,噢噢, 看到这里顿时感觉 柳暗花明了,原来是因为系统没有找到主机名w对应的IP,只需修改Linux的hosts文件即可。


解决办法
          上面已经分析错误原因了,主要是因为系统没有找到主机名w对应的IP,修改Linux的hosts文件即可。具体操作步骤如下:
首先,执行 cat /etc/hosts 命令,如下:

[root@w picture]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

然后再执行 vi /etc/hosts 命令

在第一行 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 后加上 w 保存即可。

修改完之后的hosts文件如下:

[root@w picture]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 w
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Linux查找域名时通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。



OK,到这里 问题已经搞定了!




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值