在Eclipse中的Spring Boot应用程序,配置为侦听端口XXXX的Tomcat连接器无法启动

时间:2017-03-26 07:48:42

标签: java spring eclipse tomcat spring-boot

我正在使用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文件中的端口两次。它工作正常,但同样,这是第一次。可以想象,每次应用程序执行时我都不能这样做。

18 个答案:

答案 0 :(得分:39)

  1. 查找端口的进程ID(PID)(例如: 8080

    在Windows上:

    netstat -ao | find "8080"
    

    Windows以外的其他平台:

    lsof -i:8080
    
  2. 终止您找到的进程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"进程选项卡下的进程。例如: enter image description here

在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.

最后我得到了解决方案,这在下面的屏幕截图中给出:

enter image description here

右键点击控制台标签 - >并选择终止/断开所有 现在尝试运行您的代码。

注意:在再次运行之前不要忘记停止服务器。

答案 6 :(得分:2)

  1. 检查忙碌的端口:netstat -ntlp
  2. 杀死该端口:kill -9 xxxx

答案 7 :(得分:2)

可以使用2种方法解决此问题:

  1. 杀死在8080上运行的应用程序
netstat -ao | find "8080"

Taskkill /PID 1342 /F
  1. 更改 application.properties 文件中的spring服务器端口
  

server.port = 8081

答案 8 :(得分:1)

在Windows上:

要开始使用,请单击“开始”,然后键入cmd,以打开命令提示符。在命令窗口中,继续并键入以下命令:

  

netstat -a -n -o

在上面的命令中,-o参数是将PID添加到表末尾的参数。按Enter键,您应该会看到类似这样的内容:

enter image description here

现在要查看正在使用该端口的进程的名称,请按CTRL + SHIFT + ESC转到“任务管理器”,然后单击“进程”选项卡。在Windows 10中,应该单击“详细信息”选项卡。

默认情况下,任务管理器不显示进程ID,因此您必须单击“查看”,然后单击“选择列”。

您可能还需要研究在后台运行的服务。为此,请右键单击并选择打开的服务,如下所示:

enter image description here

希望它会有所帮助:)

答案 9 :(得分:1)

解决此问题的更简单方法是更改​​ application.properties 文件上的端口;

enter image description here

server.port = 8081

答案 10 :(得分:1)

如果您的应用程序在httpS上运行,请确保在以下属性下输入正确的值:

server.ssl.key-store-password=
server.ssl.key-alias=

在此处输入错误的值时,我也会遇到相同的错误

答案 11 :(得分:1)

有两种方法可以处理/避免这种情况。

  1. 在重新运行应用程序之前,只需终止先前的连接即可。

    • Open the console --> right click --> terminate all.
  2. 如果您忘记执行步骤1所述的操作,则

    • 找出应用程序使用的端口,可以看到它的堆栈跟踪 在控制台窗口中
    • 通过在cmd中执行 netstat -aon 命令找出与端口相关的进程ID
    • 终止该过程并重新运行该应用程序。

答案 12 :(得分:0)

如果方便的话,并且您不想使用命令行,则可以重新启动计算机,它会有所帮助!

答案 13 :(得分:0)

对于那些在控制后仍然遇到相同问题的人,没有分配端口的可疑Java进程,eclipse上没有红场以终止任何进程,即使您为Spring Boot应用程序尝试使用不同的端口也没有任何改变

可能听起来很愚蠢,但是;重新开始蚀工程。 :)

答案 14 :(得分:0)

在Windows操作系统中,请执行以下步骤:


1)搜索服务 2)找到Apache tomcat 3)右键单击并选择结束 4)再次运行您的spring boot应用程序,它将起作用

答案 15 :(得分:0)

我们在eclipse或intellij中也遇到了同样的问题。在尝试了许多替代解决方案之后,我找到了简单的解决方案-将此配置添加到您的application.properties: "By.XPath("//test")"

答案 16 :(得分:0)

如果你有像自动构建依赖这样的开发工具,请删除它。它会自动构建您的项目并运行它。当您手动构建时,它会显示正在使用的端口。

答案 17 :(得分:-1)

right click on console and stop

右键单击控制台并终止。或点击“停止”

enter image description here