Tomcat 由于本地计算机上的两个应用程序 运行,地址已在使用错误

Tomcat address already in use error due to two applications running on local machine

我的 Java 应用程序出现此错误:

ERROR o.a.catalina.core.StandardService – Failed to start connector [Connector[HTTP/1.1-9004]] org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-9004]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:265) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:208) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) at ie.aviva.app.TomcatApp.main(TomcatApp.java:31) Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1020) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 13 common frames omitted Caused by: java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:461) at sun.nio.ch.Net.bind(Net.java:453) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85) at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1150) at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591) at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018) ... 14 common frames omitted

我猜我的两个应用程序正试图在同一个端口上启动 Tomcat,但我对 tomcat 没有任何了解或经验。还假设它以某种方式嵌入到 SpringBoot 中。我如何 investigate/resolve 这个?

您可以在application.properties

中设置服务器端口
server.port=8081

application.yml:

server:
  port: 8081

两个文件之一可能存在于 src/main/resources 中,如果没有,您可以创建一个。

我假设您的机器已经具有您可能不需要的 8080 端口 运行。因此,要终止该连接,请遵循以下两个简单的步骤(如果您想为您的应用程序使用 8080):

通过在您的终端上输入以下内容获取 8080 端口的 PID:netstat -n -a -o | grep '8080'

杀死进程释放8080端口:taskkill /F /PID 1234(假设PID为1234)