【问题标题】:Spring Boot application in eclipse, the Tomcat connector configured to listen on port XXXX failed to starteclipse中的Spring Boot应用程序,配置为监听端口XXXX的Tomcat连接器启动失败
【发布时间】:2017-08-18 23:27:14
【问题描述】:

我正在使用 Spring Framework 开发一个 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 的嵌入式实例来部署每个应用程序。

我的猜测是,我第二次尝试运行应用程序时服务器没有重新启动,这就是输出显示“端口可能已在使用中或连接器可能配置错误”的原因

所以,一个更具体的问题是,如何手动或以编程方式管理 apache tomcat 的嵌入式实例?

我还两次修改了application.properties 文件中的端口。它工作正常,但同样,只是第一次。正如你可以想象的那样,每次执行应用程序时我都不能做同样的事情。

【问题讨论】:

  • 您是否在尝试第二次启动应用程序之前停止它?如果是这样,你是怎么做到的?听起来应用程序的第一个实例仍在运行。
  • 不,我不是。我实际上认为框架会在幕后执行这些操作。
  • 对于临时解决方法,您可以将端口设置为server.port=0,这将找到一个随机开放的端口来使用。虽然我建议您找到一种方法来正确停止您的应用程序。
  • 应用您给我的解决方案运行良好。感谢您抽出时间提出这个问题。
  • 嗨@codingbash,Lyk yu提到,我在属性文件中将端口号设为0。不过,我遇到了同样的错误。 “配置为侦听端口 0 的 Tomcat 连接器启动失败。该端口可能已在使用中,或者连接器可能配置错误。”对我的问题有任何猜测吗??

标签: java spring eclipse tomcat spring-boot


【解决方案1】:

问题:这是因为您没有停止应用程序,或者应用程序已经以某种方式在同一端口上运行。

解决方案,在再次启动之前,需要先杀死较早的应用程序并释放端口。

根据您的平台,您可以运行以下命令来停止应用程序,

在窗户上

netstat -anp |查找“您的应用程序端口号”`--> 查找 PID

taskkill /F /PID

在 Linux 上,

netstat -ntpl | grep "你的应用端口号"

kill pid // 你将从上一个命令中得到的 pid

在 Mac 操作系统上

lsof -n -iTCP:"端口号"

kill pid //你将从上一个命令中得到的pid

【讨论】:

  • 我之前尝试过这些命令,但真正的问题是应用程序不会在同一个端口上运行两次。
  • @Sandoval0992 正如我所说,这是因为在重新启动之前,您并没有停止应用程序。
  • @100Pixels 我现在也遇到了同样的问题。你是如何解决这个问题的?
  • @want2learn 我刚刚标记了接受的答案,这就是我所做的。只需在尝试再次运行之前停止您的启动应用程序。从“服务器”角度单击“停止”按钮。它位于此窗口的右上角。
  • 在 Cygwin 中 $ netstat -anp |查找“8080”查找:“8080”:没有这样的文件或目录 $ netstat -ntpl | grep "8080" 显示协议统计信息...(显示帮助)。在 CMD 中:netstat -anp 返回空
【解决方案2】:

在控制台上,查看对话框的最右侧,您应该会看到一个红色按钮,有点像蜂鸣器。要正确停止您刚刚运行的 spring boot 应用程序,请继续点击这个特殊的“红色”按钮,您的问题就解决了。希望这会有所帮助!

【讨论】:

  • 如果 eclipse 不是使用端口的那个,找出哪个是并杀死它。 stackoverflow.com/a/47235112/1308453
  • 此问题是由于其他服务或 tomcat 使用已运行的端口而出现的。注意:STS 从它自己的一端运行 tomcat,如果 tomcat 正在预运行,那么您需要停止该服务。如其他帖子中所述,您需要停止该服务。上面提到的解决方案是在服务器仅使用 STS 预运行时停止服务器。
  • 尝试关闭您的 IDE 并再次运行您的应用程序。
  • 或者只需点击屏幕左侧的蓝色图标即可在不停止应用程序的情况下解决问题。很简单
【解决方案3】:

解决此错误的另一种简单方法是在控制台中单击鼠标右键,然后单击“全部终止/断开连接”。然后运行应用程序,它应该可以正常工作。

【讨论】:

    【解决方案4】:

    找到进程并终止它。 在 Windows 上执行 Control+Alt+Delete,然后在 Processes 选项卡下找到“Java(TM) Platform SE Binary”进程。例如:

    在 Ubuntu 上,您可以使用“ps aux | grep java”来查找进程并使用“kill -9 PID_NUMBER”来终止进程。

    如果您使用的是 Spring Boot 应用程序,请转到 application.properties 并添加以下内容:

    server.port = 8081
    

    【讨论】:

    • 它仍然不适用于任何其他端口。请帮忙。
    • 对不起,你的问题太含糊了。也许将其作为一个新问题发布,并包含您的更多背景情况信息。比如你的操作系统、错误信息等等。
    • 在 Windows 上适用于我,但如果您正在运行多个服务,则需要知道要终止哪个进程。
    【解决方案5】:
    1. 检查繁忙的端口:netstat -ntlp
    2. 杀死那个端口:kill -9 xxxx

    【讨论】:

      【解决方案6】:
      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
        

      【讨论】:

      • 这对我有用。非常感谢。但不知道为什么即使在从 IntelliJ 杀死服务器之后,它也没有杀死进程。这对我来说总是发生
      • 这对我也有用。但是,必须说,即使在完成此任务后重新启动服务器后,我仍然遇到相同的错误,但我的应用程序运行了。
      • windows 试试netstat -ano -p tcp |find "9443"
      【解决方案7】:

      右键单击您的控制台并终止。或点击停止

      【讨论】:

        【解决方案8】:

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

        1. 在重新运行应用程序之前,只需终止之前的连接即可。
        • Open the console --> right click --> terminate all.
        1. 如果您忘记在步骤 1 中执行操作提及,那么
        • 找出您的应用程序使用的端口,您可以在堆栈跟踪中看到它 在控制台窗口中
        • 通过在cmd中执行netstat -aon命令找出与端口关联的进程ID
        • 终止该进程并重新运行应用程序。

        【讨论】:

          【解决方案9】:

          在 Windows 上:

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

          netstat -a -n -o

          在上面的命令中,-o 参数是将 PID 添加到表末尾的参数。按回车,您应该会看到如下内容:

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

          默认情况下,任务管理器不显示进程ID,所以你必须点击查看,然后选择列。

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

          希望对你有帮助:)

          【讨论】:

            【解决方案10】:

            如果您的应用在 httpS 上运行,请确保在以下属性下设置正确的值:

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

            当我在这里输入错误的值时,我得到了同样的错误

            【讨论】:

            • 谢谢。我在这里有错误的价值观。 :(纠正它有效:)
            • 这里也一样。我将别名密码留空
            【解决方案11】:

            这个问题可以通过两种方式解决:

            1. 杀死在 8080 上运行的应用程序
            netstat -ao | find "8080"
            
            Taskkill /PID 1342 /F
            
            1. application.properties 文件中更改 spring 服务器端口

            server.port=8081

            【讨论】:

              【解决方案12】:

              如果你方便,又不想使用命令行,你可以重启你的电脑,这很有帮助!

              【讨论】:

                【解决方案13】:

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

                enter image description here

                server.port=8081

                【讨论】:

                  【解决方案14】:

                  对于那些在控制后遇到同样问题的人来说,没有分配端口的可疑 java 进程,eclipse 上没有红色方块来终止任何进程,即使您为 spring boot 应用程序尝试不同的端口也没有任何变化.

                  可能听起来很愚蠢,但是;重新启动 Eclipse 工作。 :)

                  【讨论】:

                    【解决方案15】:

                    在您的 Windows 操作系统中执行以下步骤:


                    1) 搜索服务 2)找到Apache tomcat 3)右键单击它并选择结束 4)再次运行你的spring boot应用程序就可以了

                    【讨论】:

                      【解决方案16】:

                      我们在 eclipse 或 intellij 中遇到了同样的问题。在尝试了许多替代解决方案后,我找到了简单的解决方案 - 将此配置添加到您的 application.properties: spring.main.web-application-type=none

                      【讨论】:

                        【解决方案17】:

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

                        【讨论】:

                          【解决方案18】:

                          如果上述解决方案均无效,并且您使用的是 IntelliJ Idea(我使用的是 2020.3 版),您可以转到服务选项卡并尝试右键单击正在运行的配置,然后单击清除内容。

                          【讨论】:

                            猜你喜欢
                            • 2019-01-21
                            • 2018-12-21
                            • 2018-11-05
                            • 2018-05-12
                            • 1970-01-01
                            • 2019-07-10
                            • 2018-12-30
                            • 2017-11-21
                            • 2021-07-21
                            相关资源
                            最近更新 更多