![](/img/trans.png)
[英]Spring Boot: The Tomcat connector configured to listen on port 8080 failed to start
[英]Spring Boot application in eclipse, the Tomcat connector configured to listen on port XXXX failed to start
我正在使用 Spring 框架开发 REST API。
首先,由于同样的问题,我无法运行我的应用程序。 我电脑的8080端口忙。 然后我发现解决这个问题的另一种方法是在src/main/resources
文件夹下创建一个application.properties
文件。 这就是我所做的,并将服务器设置为侦听端口 8090。这只是第一次成功,现在每当我第二次尝试运行该应用程序时,我都会遇到同样的异常。
Description:
The Tomcat connector configured to listen on port 8090 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 8090, or configure this application to listen on another port.
据我所知,该框架使用 apache tomcat 的嵌入式实例来部署每个应用程序。
我的猜测是,我第二次尝试运行应用程序时服务器没有重新启动,这就是为什么 output 说“端口可能已被使用或连接器可能配置错误”
因此,一个更具体的问题是,如何手动或以编程方式管理 apache tomcat 的嵌入式实例?
我还在application.properties
文件中修改了端口两次。 它工作正常,但又是第一次。 正如您可以想象的那样,我无法在每次执行应用程序时都做同样的事情。
查找端口的进程 ID (PID)(例如: 8080 )
在 Windows 上:
netstat -ao | find "8080"
windows以外的其他平台:
lsof -i:8080
杀死您找到的进程 ID(例如:20712)
在 Windows 上:
Taskkill /PID 20712 /F
windows以外的其他平台:
kill -9 20712 or kill 20712
在控制台上,查看对话框的最右上角,您应该会看到一个有点像蜂鸣器的红色按钮。 要正确停止刚刚运行的 spring boot 应用程序,请继续点击这个特定的“红色”按钮,您的问题就解决了。 希望这可以帮助!
解决此错误的另一种简单方法是右键单击控制台,然后单击“终止/断开所有连接”。 之后运行应用程序它应该可以正常工作。
问题:这是因为您没有停止应用程序,或者应用程序已经以某种方式在同一端口上以某种方式运行。
解决方案,在再次启动之前,需要杀死较早的应用程序并释放端口。
根据您的平台,您可以运行以下命令来停止应用程序,
在窗户上
netstat -anp | 找到“您的应用程序端口号”` --> 找到 PID
taskkill /F /PID
在 Linux 上,
netstat -ntpl | grep“您的应用程序端口号”
kill pid // 您将从上一个命令中获得的 pid
在 Mac 操作系统上
lsof -n -iTCP:"端口号"
kill pid //pid 您将从上一个命令中获得
当我第一次运行时,我已经面临这个问题,然后又想再运行我得到的另一个项目:
The Tomcat connector configured to listen on port 8088 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 8088, or configure this application to listen on another port.
最后我得到了解决方案,如下面的屏幕截图所示:
右键单击Console选项卡 - >并选择Terminate / Disconnect all现在尝试运行您的代码。
注意 :在再次运行之前, 请不要忘记停止服务器。
如果您的应用程序在 httpS 上运行,请确保在以下属性下放置正确的值:
server.ssl.key-store-password=
server.ssl.key-alias=
当我在这里输入错误的值时,我遇到了同样的错误
这个问题可以通过两种方式解决:
netstat -ao | find "8080" Taskkill /PID 1342 /F
server.port=8081
在 Windows 上:
首先,通过单击“开始”然后键入 cmd 打开命令提示符。 在命令窗口中,继续并输入以下命令:
netstat -a -n -o
在上面的命令中,-o 参数用于将 PID 添加到表的末尾。 按 Enter 键,您应该会看到如下内容:
现在要查看使用该端口的进程的名称,请按 CTRL + SHIFT + ESC 转到任务管理器,然后单击进程选项卡。 在 Windows 10 中,您应该单击“详细信息”选项卡。
默认情况下,任务管理器不显示进程 ID,因此您必须单击查看,然后单击选择列。
您可能还需要查看在后台运行的服务。 为此,请右键单击并选择打开的服务,如下所示:
希望能帮助到你 :)
有两种选择可以处理/避免这种情况。
Open the console --> right click --> terminate all.
如果你方便,又不想使用命令行,可以重启电脑,很有帮助!
对于那些在控制后遇到相同问题的人,没有分配端口的可疑 java 进程,eclipse 上没有红色方块可以终止任何进程,即使您为 spring boot 应用程序尝试不同的端口也没有变化。
可能听起来很愚蠢,但是; 重新启动 eclipse 工作。 :)
在您的 Windows 操作系统中,请按照以下步骤操作:
我们在 eclipse 或 intellij 中遇到了同样的问题。 在尝试了许多替代解决方案后,我找到了简单的解决方案 - 将此配置添加到您的 application.properties: spring.main.web-application-type=none
如果您有像自动构建依赖项这样的开发工具,请删除它。 它会自动构建您的项目并运行它。 当您手动构建时,它会显示正在使用的端口。
查找端口的进程 ID (PID)(例如:8080)
在 Windows 上:
网络统计-ao | 找到“8080”
杀死你找到的进程ID(例如:20712)
在 Windows 上,在 cmd 中右键单击并打开以管理员身份运行:在此处输入图像描述
Taskkill /PID 20712 /F
对于 Spring Boot 2 及更高版本,将属性添加到您的应用程序配置文件(application.properties 或 application.yaml):
spring.main.web-application-type=SERVLET
WebApplicationType 可以是以下之一:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.