【异常记录】java.net.BindException: Address already in use: bind

在启动springcloud项目的时候,报如下错误:

org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-9200]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:250) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:193) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) [spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
	at com.dj.edi.ComEdiZuulApplication.main(ComEdiZuulApplication.java:16) [classes/:na]
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1021) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	... 13 common frames omitted
Caused by: java.net.BindException: Address already in use: bind
	at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_144]
	at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1150) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018) ~[tomcat-embed-core-8.5.27.jar:8.5.27]
	... 14 common frames omitted

2019-05-23 16:41:52.740  INFO [dj-atliwen-jsp-zuul,,,] 13116 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-05-23 16:41:52.747  WARN [dj-atliwen-jsp-zuul,,,] 13116 --- [ost-startStop-2] o.a.c.loader.WebappClassLoaderBase       : The web application [ROOT] appears to have started a thread named [spring.cloud.inetutils] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 java.lang.Thread.run(Thread.java:748)
2019-05-23 16:41:52.755  INFO [dj-atliwen-jsp-zuul,,,] 13116 --- [           main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2019-05-23 16:41:52.759 ERROR [dj-atliwen-jsp-zuul,,,] 13116 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

The Tomcat connector configured to listen on port 9200 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 9200, or configure this application to listen on another port.

 

从上面关注以下信息:

org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-9200]]

Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed

Caused by: java.net.BindException: Address already in use: bind

从上述看出是端口9200已被使用

再往下看,发现下面有更详细的提示,并给出了解决方案(不清楚是不是只有springcloud项目才会有这种提示)

***************************
APPLICATION FAILED TO START
***************************

Description:   

The Tomcat connector configured to listen on port 9200 failed to start. The port may already be in use or the connector may be misconfigured.

上段是说明了应用启动失败原因:tomcat在使用端口9200启动的时候失败,端口9200可能已经被占用或者连接配置错误

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 9200, or configure this application to listen on another port.

上段很牛逼的给出了解决方案:验证连接配置,查看是否有其他进程在使用端口9200;或者将此应用使用的端口换成别的

 

总结:这种异常一般是应用定义的端口已被别的应用占用,或者配置错误。

 

window环境下如何查看端口是被那个应用占用?请查看此文《如何在windows下查看端口被哪个进程占用及端口是否通畅(可访问)

 


java.net.BindException: Address already in use: JVM_Bind是一个常见的异常,意味着在绑定一个地址和端口时发生了冲突,因为该地址和端口已经被其他进程占用了。这个异常通常在网络编程中使用socket时出现,尤其是在同时运行多个程序或服务监听相同的地址和端口时。 通常有几种原因导致这个问题的发生。一种可能是在同一台计算机上运行了多个相同的服务或程序,它们试图在相同的端口上进行监听。在这种情况下,解决方法是找到冲突的进程并停止它们,或者为每个进程分配不同的端口。 另一种可能是之前的程序没有正确释放绑定的端口,导致该端口仍然处于占用状态。解决这个问题的方法是等待一段时间,让操作系统自动释放该端口,或者手动杀死占用该端口的进程。 此外,还有可能是防火墙或安全软件阻止了程序对特定端口的访问。在这种情况下,您可以尝试禁用防火墙或更新安全软件的设置来允许程序访问所需的端口。 总结起来,java.net.BindException: Address already in use: JVM_Bind异常意味着在绑定地址和端口时发生了冲突,可能是因为多个程序或服务同时监听相同的地址和端口,或者之前的程序没有正确释放绑定的端口,也可能是防火墙或安全软件阻止了程序对端口的访问。解决方法包括找到冲突的进程并停止它们、等待操作系统自动释放端口、手动杀死占用端口的进程,或者更新安全设置允许程序访问所需的端口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值