zl程序教程

您现在的位置是:首页 >  Java

当前栏目

异常解决——Tomcat启动异常:Cannot assign requested address

2023-04-18 16:54:05 时间

异常分析:

tomcat启动的时候报错,提示无法使用8005端口,因为使用的默认端口,tomcat的8005端口是用来停止服务的。

因为是内网,无法放图,我只能把异常信息打印出来了:java.net.BindException: Cannot assign requested address(Bind failed)

问题原因:

可能出现问题的原因:

1、8005端口确实被占用了

2、socket大量创建,并没有被回收,具体参考:参考

3、服务器/etc/hosts 文件的localhost配置不是本机ip 或者不是 127.0.0.1 ,具体可以参考:参考

解决方案:

1、当怀疑是8005端口被占用的时候,我用root用户查看端口情况,如果发现被占用,则可以根据实际情况决定是更换tomcat 8005端口为其他端口还是kill掉占用端口的进程。具体命令如下:

netstat -lnp|grep 8005

这里我发现端口并没有被占用,而且我更改tomcat的conf目录下的server.xml文件,更改8005端口为6667端口,结果启动的时候还是提示6667端口无法使用。

2、当第一种解决不了的时候,我利用原因2的参考资料进行了socket回收:

sysctl -w net.ipv4.tcp_tw_recycle=1;

结果发现并不是这个原因

3、突然想到最近迁移了服务器,服务器IP都进行了更换,会不会有可能/etc/hosts的localhost映射的ip没进行更换。

所以直接

vim  /etc/hosts 

找到对应设置localdomain4的ip,更换成服务器更改后的ip , 重启服务器

reboot

重启服务器后,再重新启动tomcat,问题解决!

这里还应该注意看看 /etc/sysconfig/network-scripts/ 目录下的ifcfg-eth0 或者 ifcfg-lo文件的IP配置是否正确!

注意事项

一切操作以root用户操作。否则没权限!