我正在使用Spring Framework开发API REST
首先,由于同样的问题,我无法运行我的应用程序。我电脑上的端口8080正忙。
然后我发现解决此问题的另一种方法是在application.properties
文件夹下创建src/main/resources
文件。
这就是我所做的,并将服务器设置为在端口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的嵌入式实例来部署每个应用程序。
我的猜测是,第二次尝试运行应用时,服务器没有重新启动,这就是为什么输出显示"端口可能已在使用中,或者连接器可能配置错误"
因此,更具体的问题是,如何手动或以编程方式管理apache tomcat的嵌入式实例?
我还修改了application.properties
文件中的端口两次。它工作正常,但同样,这是第一次。可以想象,每次应用程序执行时我都不能这样做。
答案 0 :(得分:39)
查找端口的进程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
答案 1 :(得分:31)
在控制台上,查看对话框的最右上角,您会看到一个红色按钮,就像一个蜂鸣器。要正确停止弹簧启动应用程序,您只需运行,继续按下此特定的“红色”按钮,您的问题就解决了。希望这有帮助!
答案 2 :(得分:23)
解决此错误的另一种简单方法是右键单击控制台并单击“终止/断开所有”。之后运行应用程序应该可以正常工作。
答案 3 :(得分:11)
这是因为你没有停止你的应用程序,然后再启动它,因此它说端口已经在使用中。
您应该在再次启动之前停止应用程序,否则您将遇到端口冲突问题。
根据您的平台,如果您在Windows上运行它,您可以使用netstat -anp | find "port number"
,或者如果您在Linux上运行它,则可以使用netstat -ntpl | grep "port number"
或使用lsof -n -iTCP:"port number"
。
答案 4 :(得分:9)
找到进程并终止它。 在Windows上执行Control + Alt + Delete,然后找到" Java(TM)Platform SE Binary"进程选项卡下的进程。例如:
在Ubuntu上,您可以使用" ps aux | grep java"找到这个过程" kill -9 PID_NUMBER"杀死这个过程。
OR
如果您正在使用Spring启动应用程序,请转到application.properties并添加:
server.port = 8081
答案 5 :(得分:9)
当我第一次跑步时,我已经面临这个问题,然后我想再次运行另一个项目:
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.
最后我得到了解决方案,这在下面的屏幕截图中给出:
右键点击控制台标签 - >并选择终止/断开所有 现在尝试运行您的代码。
注意:在再次运行之前不要忘记停止服务器。
答案 6 :(得分:2)
答案 7 :(得分:2)
可以使用2种方法解决此问题:
netstat -ao | find "8080" Taskkill /PID 1342 /F
server.port = 8081
答案 8 :(得分:1)
在Windows上:
要开始使用,请单击“开始”,然后键入cmd,以打开命令提示符。在命令窗口中,继续并键入以下命令:
netstat -a -n -o
在上面的命令中,-o参数是将PID添加到表末尾的参数。按Enter键,您应该会看到类似这样的内容:
现在要查看正在使用该端口的进程的名称,请按CTRL + SHIFT + ESC转到“任务管理器”,然后单击“进程”选项卡。在Windows 10中,应该单击“详细信息”选项卡。
默认情况下,任务管理器不显示进程ID,因此您必须单击“查看”,然后单击“选择列”。
您可能还需要研究在后台运行的服务。为此,请右键单击并选择打开的服务,如下所示:
希望它会有所帮助:)
答案 9 :(得分:1)
答案 10 :(得分:1)
如果您的应用程序在httpS上运行,请确保在以下属性下输入正确的值:
server.ssl.key-store-password=
server.ssl.key-alias=
在此处输入错误的值时,我也会遇到相同的错误
答案 11 :(得分:1)
有两种方法可以处理/避免这种情况。
在重新运行应用程序之前,只需终止先前的连接即可。
Open the console --> right click --> terminate all.
如果您忘记执行步骤1所述的操作,则
答案 12 :(得分:0)
如果方便的话,并且您不想使用命令行,则可以重新启动计算机,它会有所帮助!
答案 13 :(得分:0)
对于那些在控制后仍然遇到相同问题的人,没有分配端口的可疑Java进程,eclipse上没有红场以终止任何进程,即使您为Spring Boot应用程序尝试使用不同的端口也没有任何改变
可能听起来很愚蠢,但是;重新开始蚀工程。 :)
答案 14 :(得分:0)
在Windows操作系统中,请执行以下步骤:
答案 15 :(得分:0)
我们在eclipse或intellij中也遇到了同样的问题。在尝试了许多替代解决方案之后,我找到了简单的解决方案-将此配置添加到您的application.properties:
"By.XPath("//test")"
答案 16 :(得分:0)
如果你有像自动构建依赖这样的开发工具,请删除它。它会自动构建您的项目并运行它。当您手动构建时,它会显示正在使用的端口。
答案 17 :(得分:-1)