ActiveMQ常见错误三:Caused by: java.net.UnknownHostException: centos: 未知的名称或服务

ActiveMQ启动时出现错误信息如下:

Caused by: java.net.UnknownHostException: centos: 未知的名称或服务
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
at java.net.InetAddress.getLocalHost(InetAddress.java:1434)


问题分析:


根据日志java.net.UnknownHostException: localhost判断,应该是由于服务器无法正确解析localhost造成的


[plain] view plain copy
[123@test conf]$ ping localhost  
ping: unknown host localhost  
[123@test conf]$ ping 127.0.0.1  
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.  
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.020 ms  
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.026 ms  
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.023 ms  
根据日志Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService' defined in class path resource [activemq.xml]判断,应该是activemq.xml文件中的BrokerService配置出错
解决方式:


一:不使用localhost而使用127.0.0.1代替


二:新增主机映射
[root@test test]# vi /etc/hosts
192.168.1.104  centos.localdomain centos


[root@test test]# ping centos  
PING centos.localdomain (127.0.0.1) 56(84) bytes of data.  
64 bytes from centos.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.019 ms  
64 bytes from centos.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.020 ms  
64 bytes from centos.localdomain (127.0.0.1): icmp_seq=3 ttl=64 time=0.024 ms  
64 bytes from centos.localdomain (127.0.0.1): icmp_seq=4 ttl=64 time=0.020 ms  
64 bytes from centos.localdomain (127.0.0.1): icmp_seq=5 ttl=64 time=0.018 ms  
  


此时可以在配置文件中使用centos,服务器会将centos解析为127.0.0.1 

至此 问题解决.

上一篇:Error creating bean with name 'sessionFactory' defined in class path resource [application


下一篇:JavaFx出现错误Caused by: java.lang.NullPointerException: Location is required的解决方法