java.net.UnknownHostException 異常處理(轉)


在linux系統下部署Java產品的集群環境時,后台報出如下異常,系統報找不到名為“QATest242”的主機: 
ERROR  - Get local host name failed -com.trs.infra.cluster.ClusterConfig.getMemberHost(ClusterConfig.java:293) 
java.net.UnknownHostException: QATest242: QATest242 
        at java.net.InetAddress.getLocalHost(InetAddress.java:1353) 
        at xxxxxxx 產品異常信息 
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029) 
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862) 
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013) 
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357) 
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823) 
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) 
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) 
        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277) 
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:832) 
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701) 
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432) 
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) 
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) 
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) 
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) 
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) 
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) 
        at org.apache.catalina.core.StandardService.start(StandardService.java:480) 
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) 
        at org.apache.catalina.startup.Catalina.start(Catalina.java:556) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
        at java.lang.reflect.Method.invoke(Method.java:597) 
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) 
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) 

出錯的Java代碼: 
InetAddress localhost = InetAddress.getLocalHost(); 

解決辦法: 
    打開linux機器的etc/hosts文件,在文件最后加上下面這句話,重啟ekp應用即可 
192.9.100.242 cluster242.domain QATest242 
192.9.100.242:ip地址 
cluster242.domain:第二位為域名 
QATest242:主機名稱 
------------------------------------------ 
測試方案: 
ping  127.0.0.1  可以ping通 
ping  localhost  不通 
說明是主機映射的原因。 
解決方法: 
修改etc/hosts 文件 
[oracle@bogon ~]$ su - root 
Password: 
[root@bogon ~]# cd .. 
[root@bogon /]# cd .. 
[root@bogon /]# cd etc 
[root@bogon etc]# cat hosts 
# Do not remove the following line, or various programs 
# that require network functionality will fail. 
127.0.0.1               bogon.localdomain bogon 
在hosts文件中追加下面一行就OK了: 
127.0.0.1 localhost.localdomain localhost 
61.191.39.18  szxapp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM