关于启动Tomcat报java.net.BindException: Address already in use: bind问题的解决

  • Post author:
  • Post category:java


首先,附上报错日志信息:

一般来讲报Address already in use: bind错误,常见解决方案如下:

(1)修改tomcat中conf目录下的 server.xml文件,将刚问端口改一下即可。

(2)杀掉占用tomcat端口进程,Windows下打开命令窗口(WIN+R—>输入cmd)输入命令

netstat -ano|findstr 8005

查看端口占用,找到端口占用的PID,然后输入taskkill /pid ‘占用pid’ /f即可。

(3)

但是

,我所遇到的问题用以上方法并不能解决,经过大量的排查,发现是tomcat中lib目录下引入的包有问题,在保留tomcat本身自带的包之外,引入项目相关的包一定要是正确的一定要是正确的!!!将包的问题排查好了之后,tomcat奇迹般的活了起来!问题虽小,但排查过程有点艰难(项目相关包错删很有可能导致项目启动崩溃,哈哈)。最后,祝大家好运!

(4)最近我跟Address already in use : connect干上了,今天的问题不是bind了,而是connect!!!首先描述一下问题,最近一个老的掉牙的项目要进行压力测试,就是那种爸爸辈的项目,正常访问都没啥问题。但是当压力测试并发量一起来,然后就疯狂的报:Address already in use : connect。一开始以为是代码中数据库连接没有及时关闭,后来经过大量的排查(把那尼玛Java代码写在数不清的jsp中的页面挨个看看),有问题的我都改过了,所以不是这个问题导致。再后来查大量的资料,发现是windows server 2003 系统的毛病,好吧 ,顿时,我想日狗。。。

然后操作系统修改注册表,心情舒服了很多。

操作步骤:

  • WIN+R 打开DOS命令 –> 输入regedit 打开注册表
  • 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters
  • 新建DWORD值,name:TCPTimedWaitDelay,value:30(十进制)
  • 新建 DWORD值,name:MaxUserPort,value:65534(十进制)
  • 系统重启就ok啦



版权声明:本文为Winston_Limf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。