tomcat 端口被占用 Address already in use JVM_Bind

时间:2024.5.2

【原创】tomcat 端口被占用 Address already in use: JVM_Bind:8080

tomcat端口被占用的情况:

(一)已经启动了tomcat,如果没有关闭再次启动,就会报错

(二)没有tomcat启动,仍然报端口被占用。可能是eclipse中启动了tomcat,eclipse异常终止后,tomcat内核进程还在。以我遇到的情况为例:

在eclipse中启动了tomcat,调试程序。中途eclipse异常崩溃,我就重新打开了eclipse,再启动tomcat时,报错:

严重: Error initializing endpoint

java.net.BindException: Address already in use: JVM_Bind:8080

at org.apache..PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)

at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:138)

at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)

at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)

at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)

at org.apache.catalina.startup.Catalina.load(Catalina.java:503)

at org.apache.catalina.startup.Catalina.load(Catalina.java:523)

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:585)

at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:266)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)

2009-10-28 17:18:55 org.apache.catalina.startup.Catalina load

我以为eclipse没启动好,结果又重启了一次,问题依旧。

我怀疑后台tomcat进程没关闭,关闭了eclipse,然后打开任务管理器,奇怪的是eclipse明明已经关掉了,却还存在一个javaw.exe进程,应该是eclipse异常崩溃导致。于是结束这个javaw.exe进程,问题解决。 注:这个问题我遇到好多次了,今天写下来就是为了供刚入门的朋友参考。

tomcat端口被占用AddressalreadyinuseJVMBind


第二篇:解决 Address already in use connect 的错误


apache httpclient与close_wait关键字: httpclient close_wait 最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应。 后来在网上搜索了一下,发现解决的方法也很简单,如果想重用连接,那就使用连接管理器,从连接管理器里获取连接,然后定时的用连接管理器来释放空闲连接。httpclient自带了SimpleHttpConnectionManager,提供了Java代码 closeIdleConnections(long idleTimeout) closeIdleConnections(long idleTimeout) 这样的方法。 如果不需要重用链接,则直接在httpmethod创建时,设置一个http头信息就可以了 Java代码 httpmethod.setRequestHeader("Connection", "close"); httpmethod.setRequestHeader("Connection", "close");这样就不会有恼人的close_wait了。 -------------------------------------------------------time wait sockets ,java.net.BindException: Address already in use: connect (2009-08-06 15:06:29.0) 新增的一组Apache服务器上线以来,我用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TIME-WAIT sockets的目的。  vi /etc/sysctl.conf  编辑/etc/sysctl.conf文件,增加三行:引用net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1  说明:  net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;  net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;  net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。  再执行以下命令,让修改结果立即生效:  /sbin/sysctl -p  用以下语句看了一下服务器的TCP状态:  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  返回结果如下:  ESTABLISHED 1423  FIN_WAIT1 1  FIN_WAIT2 262  SYN_SENT 1  TIME_WAIT 962  效果:处于TIME_WAIT状态的sockets从原来的10000多减少到1000左右。处于SYN_RECV等待处理状态的sockets为0,原来的为50~300-------------------------------------短时间内new socket操作过多 而socket.close()操作并不能立即释放绑定的端口 而是把端口设置为TIME_WAIT状态 过段时间(默认240s)才释放(用netstat -na可以看到) 最后系统资源耗尽 (windows上是耗尽了pool of ephemeral ports 这段区间在1024-5000之间) 可以考虑增加端口数量来解决,不过你为何不考

虑用Socket池呢?让一个Socket重复利用呢? 以下是修改方法 默认最大数量的短暂 TCP 端口为 5000 ' 适用于 ' 部分中包含产品中。 这些产品中已添加新参数。 要增加最大值是短暂端口, 请按照下列步骤操作: 1. 启动注册表编辑器。 2. 注册表, 中找到以下子项, 然后单击 参数 : HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 3. 在 编辑 菜单, 单击 新建 , 然后添加以下注册表项: MaxUserPort 值名称: 值类型: DWORD 值数据: 65534 有效范围: 5000 - 65534 (十进制) 默认: 0x1388 5000 (十进制) 说明: 此参数控制程序从系统请求任何可用用户端口时所用最大端口数。 通常, 1024 的值和含 5000 之间分配临时 (短期) 端口。 4. 退出注册表编辑器, 并重新启动计算机。 注意 一个附加 TCPTimedWaitDelay 注册表参数决定多久关闭端口等待可以重用关闭端口。

更多相关推荐:
The Ultimate Trainers

AfterIreadthisbookIthinkIshouldlearnsomethingusefulandoptimisticfromJakethefirstcharacterinthestoryAlthoughtheultim...

The summary of the ultimate trainers

ThesummaryoftheultimatetrainersThestoryisaboutaboycalledJakeandtheultimatetrainersJakeandAnnaaregoodfriendsOnedayaf...

The ultimate trainers

ByTianyeZhangThisstoryisaboutaboynamedJakewholikedrunningverymuchtooktheperfecttrainershesawontopofacardboxnexttoap...

八年级英语下册 Unit 8 Have you read Treasure Island yet Section B(3a-self check)教案

Unit8HaveyoureadTreasureIslandyetTeachingaimsKnowledgeaimsWordsandexpressionsofthisunitAbilityaims1EnableSstodescri...

新目标八年级下册 Unit 8 Have you read Treasure Island yet 单元同步练习(含答案)

新目标八下Unit8同步练习根据句意及汉语提示填入恰当的单词1LeiFengwilllive永远inourhearts2MrWangcamebacktoChinaafterstudying在国外3Heisstu...

新目标八年级下册 Unit 8 Have you read Treasure Island yet 单元同步练习(含答案)

新目标八下Unit8同步练习根据句意及汉语提示填入恰当的单词1LeiFengwilllive永远inourhearts2MrWangcamebacktoChinaafterstudying在国外3Heisstu...

Unit 1 Have you read treasure Island学案

八年级下英语学案班级姓名Unit1HaveyoureadTreasureIslandyetSectionA1a2d时间20xx3备课人课型听说课学习目标1词汇alreadyyetislandtreasure短语...

【中学教材全解】八年级英语(下)(人教版)UNIT 8 Have you read Treasure Island yet? 检测题

UNIT8HaveyoureadTreasureIslandyet检测题听力20分一录音中有五个句子每个句子听一遍然后从每小题ABC三个选项中选择正确的答语1AThankyouIwont2AThatsgreat...

Book Report on Treasure Island

BookReportonTreasureIslandTreasureIslandwaswrittenbyRobertLouisStevensonanEnglishpoetandwriterThisstorywaspraisedas...

Treasure Island 5

5TheLastoftheBlindManMYcuriosity好奇心wasstrongerthanmyfearforIcouldnotremainwhereIwasbutcreptbacktothebanka...

人教新目标20xx春八年级下册unit8Have you read Treasure Island yet全单元知识点和练习

Unit8HaveyoureadTreasureIslandyetSectionA1HaveyoureadLittleWomanyet你读过小妇人这本书吗解析现在完成时现在完成时的基本句型现在完成时的主要用法1...

The Little Prince读后感

TheLittlePrinceAntoinedeSaintExupryisbothapioneerofaviationandawellknownFrenchwriterHewasborninLyonFrancein19xxAtan...

the ultimate trainers读后感(3篇)