`

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

 
阅读更多

参考:http://blog.csdn.net/top_code/article/details/38703769

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

 

[html] view plain copy
 
  1. 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  
  2. java.net.UnknownHostException: w: w  
  3.     at java.net.InetAddress.getLocalHost(Unknown Source)  
  4.     at com.mchange.v2.c3p0.impl.C3P0ImplUtils.generateVmId(C3P0ImplUtils.java:120)  
  5.     at com.mchange.v2.c3p0.impl.C3P0ImplUtils.<clinit>(C3P0ImplUtils.java:98)  
  6.     at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:227)  
  7.     at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:62)  
  8.     at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:109)  
  9.     at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:105)  
  10.     .......  
  11. Caused by: java.net.UnknownHostException: w  
  12.     at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)  
  13.     at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)  
  14.     at java.net.InetAddress.getAddressesFromNameService(Unknown Source)  
  15.     ... 23 more  


      

 

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

问题原因

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

[html] view plain copy
 
  1. [root@w picture]# cat /etc/sysconfig/network  
  2. NETWORKING=yes  
  3. HOSTNAME=w  


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

 


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

 

[html] view plain copy
 
  1. [root@w picture]# cat /etc/hosts  
  2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
  3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  

 

 

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

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

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

[html] view plain copy
 
  1. [root@w picture]# cat /etc/hosts  
  2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 w  
  3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  

 

 

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

分享到:
评论

相关推荐

    getlocalIp_获取本地IP工具java_服务器_

    在Java编程环境中,获取本地IP地址是一个常见的需求,特别是在服务器端开发中,这可能涉及到网络通信、服务定位等多种场景。以下是一些关于如何在Java中获取本地IP的关键知识点: 1. **网络接口(Network Interface...

    解决linux找不到hostname的处理

    ### 解决Linux服务错误UnknownHostException的方法 在Linux环境中运行服务时,可能会遇到“UnknownHostException”的异常情况,这通常发生在尝试访问或设置主机名时出现问题。本文将详细介绍如何诊断并解决这一问题...

    InetAddress和URL

    for (InetAddress addr : addresses) { System.out.println(addr.getHostAddress()); } ``` ##### 2. 操作与属性 - **比较两个`InetAddress`对象**:`equals(Object obj)` 方法可以用来判断两个`InetAddress`...

    InetAddress 类中dns解析后域名、ip清空

    但是,在不同的网络环境下,IP地址会变化,如果不清空InetAddress类中的私有成员变量map,就可能会导致登录失败。 解决这个问题的方法是,使用反射技术来清空InetAddress类中的私有成员变量map。在Android系统中,...

    网络编程 InetAddress 的使用

    ### 知识点:网络编程中的InetAddress类使用方法 在网络编程中,`InetAddress` 类是Java标准库中用于处理互联网地址的核心类之一。它主要用于封装和操作IP地址,并提供了一系列方法来获取和处理IP地址相关的数据。...

    InetAddress源码

    在Java编程语言中,`InetAddress`类是网络程序设计中的核心组件,它主要用于表示互联网协议(IP)地址。这个类及其相关方法提供了获取和解析主机名与IP地址的能力,无论是本地主机还是远程主机。在分布式系统中,`...

    java获取linux服务器上的IP操作

    Java获取Linux服务器上的IP操作 Java获取Linux服务器上的IP操作是Java开发中的一项重要任务。然而,在Linux服务器上获取IP地址却存在一些问题。在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux...

    域名转IP(InetAddress)

    `DomainToIP`这个文件可能是一个示例程序,它展示了如何在Android环境中使用`InetAddress`进行域名到IP的转换。这个项目可能包含了处理网络请求、异常处理以及用户界面显示等相关代码,帮助开发者更好地理解和使用`...

    Java网络编程基础-InetAddress类与URL类

    Java网络编程是开发分布式应用程序的关键部分,InetAddress和URL类在其中扮演...在学习和实践中,不仅要掌握基本的API使用,还要注意异常处理、安全性问题以及网络环境的差异,以便在各种场景下都能编写出健壮的代码。

    iOS获取用户设备当前的IP地址

    在iOS开发中,获取用户设备当前的IP地址是一项常见的需求,这可以帮助开发者了解应用的网络环境,例如在实现网络诊断、远程服务连接或者位置定位等功能时。本文将详细讲解如何在iOS应用中获取设备的IP地址。 首先,...

    InetAddress域名解析

    InetAddress域名解析

    How to get all the IP available in LAN using java

    在Java编程环境中,获取局域网(LAN)中所有可用IP地址是一项常见的任务,这通常涉及到网络编程和网络扫描。以下是一份详细的指南,解释如何使用Java实现这一目标。 首先,理解基本概念:局域网是由连接在同一网络...

    InetAddress测试代码

    InetAddress类的代码,用来获取主机名和IP地址

    java 网络协议(一)InetAddress和Socket(含源码)

    在Java中,`InetAddress`和`Socket`是两个核心类,它们在处理网络连接和通信时起着至关重要的作用。这篇博客将深入探讨这两个类,并通过源码分析来加深理解。 `InetAddress`类代表了互联网上的一个IP地址,它可以是...

    示例3.1 使用InetAddress

    在Java编程语言中,`InetAddress`类是网络编程的核心组件之一,主要用于处理IP地址和主机名之间的转换。本示例3.1将深入探讨如何使用`InetAddress`类进行网络通信,包括获取本地主机信息、解析主机名到IP地址以及IP...

    InetAddress的用法2---马克-to-win Java视频

    InetAddress的用法2---马克-to-win Java视频 马克Java社区

    Java中的IP地址和InetAddress类使用详解

    2. `getHostName()`:返回InetAddress对象所包含的域名。 3. `getHostAddress()`:返回InetAddress对象所包含的IP地址。 4. `getLocalHost()`:返回本地主机的InetAddress对象,包含本地主机的域名和IP地址。 在...

    InetAddress的用法1---马克-to-win java视频

    InetAddress的用法1 java视频 马克java社区 马克towin

    获得 Linux window 的硬盘ID 和mac , ip 等信息(已测试)

    在Linux环境下,硬盘ID通常指的是硬盘的序列号,可以通过`udev`数据库或者`hdparm`命令来获取。Java中,我们可以使用`Runtime.exec()`或`ProcessBuilder`来执行系统命令并捕获输出。以下是一个简单的示例,展示如何...

    Android开发准确获取手机IP地址的两种方式

    "Android开发准确获取手机IP地址的...通过ConnectivityManager判断网络环境、getLocalIpAddress()获取本地IP地址和intToIp()获取WI-FI IP地址,这三种方式可以帮助我们准确获取手机IP地址,满足微信支付等操作的需求。

Global site tag (gtag.js) - Google Analytics