刚开发完一个项目,在本地部署的时候没有任何异常,到Linux系统就出现这样那样的问题,下面就是其中一个:
Tomcat在Linux平台下启动的时候抛出java.net.UnknownHostException: HP_MAIN12: HP_MAIN12异常:
2014-01-09 11:04:26,609 WARN (ConfigurationFactory.java:136) No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/home/jbxx/product/apache-tomcat-6.0.35/webapps/infocms/WEB-INF/lib/ehcache-core-2.6.3.jar!/ehcache-failsafe.xml
2014-01-09 11:04:26,696 ERROR (Cache.java:215) Unable to set localhost. This prevents creation of a GUID. Cause was: HP_MAIN12: HP_MAIN12:
java.net.UnknownHostException: HP_MAIN12: HP_MAIN12
at java.net.InetAddress.getLocalHost(InetAddress.java:1426)
at net.sf.ehcache.Cache.<clinit>(Cache.java:213)
at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:296)
at net.sf.ehcache.config.ConfigurationHelper.createDefaultCache(ConfigurationHelper.java:219)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:722)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:439)
at net.sf.ehcache.CacheManager.init(CacheManager.java:377)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:259)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1037)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:818)
at net.sf.ehcache.CacheManager.create(CacheManager.java:799)
at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:833)
at org.springframework.cache.ehcache.EhCacheFactoryBean.afterPropertiesSet(EhCacheFactoryBean.java:310)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
... ...
HP_MAIN12是你Linux机器名称,这个异常好像对程序没有多大影响。
异常出现的原因是在项目中引用的ehcache-core-2.6.3.jar缓存包,缓存需要将数据存放在本机,则使用了InetAddress.getLocalHost()获得本机方法。在Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,使用hostname查看本机名称,若本机名称不是一个IP地址, 比如是"sohu",则必须在/etc/hosts中配置sohu对应本机IP,否则java.net.InetAddress.getLocalHost会抛出java.net.UnknownHostException异常。
解决的办法也很简单:
在/etc/hosts里加一行 本机IP mName
127.0.0.1 HP_MAIN12
问题解决。
Tomcat在Linux平台下启动的时候抛出java.net.UnknownHostException: HP_MAIN12: HP_MAIN12异常:
2014-01-09 11:04:26,609 WARN (ConfigurationFactory.java:136) No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/home/jbxx/product/apache-tomcat-6.0.35/webapps/infocms/WEB-INF/lib/ehcache-core-2.6.3.jar!/ehcache-failsafe.xml
2014-01-09 11:04:26,696 ERROR (Cache.java:215) Unable to set localhost. This prevents creation of a GUID. Cause was: HP_MAIN12: HP_MAIN12:
java.net.UnknownHostException: HP_MAIN12: HP_MAIN12
at java.net.InetAddress.getLocalHost(InetAddress.java:1426)
at net.sf.ehcache.Cache.<clinit>(Cache.java:213)
at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:296)
at net.sf.ehcache.config.ConfigurationHelper.createDefaultCache(ConfigurationHelper.java:219)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:722)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:439)
at net.sf.ehcache.CacheManager.init(CacheManager.java:377)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:259)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1037)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:818)
at net.sf.ehcache.CacheManager.create(CacheManager.java:799)
at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:833)
at org.springframework.cache.ehcache.EhCacheFactoryBean.afterPropertiesSet(EhCacheFactoryBean.java:310)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
... ...
HP_MAIN12是你Linux机器名称,这个异常好像对程序没有多大影响。
异常出现的原因是在项目中引用的ehcache-core-2.6.3.jar缓存包,缓存需要将数据存放在本机,则使用了InetAddress.getLocalHost()获得本机方法。在Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,使用hostname查看本机名称,若本机名称不是一个IP地址, 比如是"sohu",则必须在/etc/hosts中配置sohu对应本机IP,否则java.net.InetAddress.getLocalHost会抛出java.net.UnknownHostException异常。
解决的办法也很简单:
在/etc/hosts里加一行 本机IP mName
127.0.0.1 HP_MAIN12
问题解决。