尝试从Spring Tool Suite IDE重新部署项目时,8080端口已经出现问题

当我尝试在Spring Tool Suite中修改Spring项目时,我感到很奇怪。 在第一次加载(部署)时,一切都很好,应用程序编译并在localhost:8080上运行

当我在代码中更改某些内容并尝试重新部署它时(再次运行它 – Run As Spring Boot App)我收到错误消息

***************************申请失败


描述:

配置为侦听端口8080的Tomcat连接器无法启动。 端口可能已在使用中,或者连接器可能配置错误。

行动:

validation连接器的配置,识别并停止正在侦听端口8080的任何进程,或将此应用程序配置为侦听另一个端口。

2016-10-19 00:01:22.615 INFO 10988 — [main] ationConfigEmbeddedWebApplicationContext:关闭org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3023df74:启动日期[Wed Oct 19 00:01:19 CEST 2016]; 上下文层次结构的根2016-10-19 00:01:22.616 INFO 10988 — [main] osjeaAnnotationMBeanExporter:在关闭时取消注册JMX暴露的bean

如果我手动关闭该端口上的进程一切正常,但这不是重新部署Spring应用程序的正确方法。 我在这里做错了吗?

我正在使用:: Spring Boot ::(v1.4.1.RELEASE)

PS我知道我可以设置某种热插拔机制,以便在我更改代码后自动重新加载页面,但是现在我想先解决这个问题。

感谢您提供任何帮助或信息。

有时甚至当我们在红色按钮的帮助下停止在IDE中运行进程时,我们会继续得到相同的错误(我不知道如何,但它发生在我身上)

它通过以下步骤解决,

  1. 检查可用端口上正在运行的进程

    netstat -ao |find /i "listening"

    我们得到了以下

    TCP 0.0.0.0:7981 machinename:0 LISTENING 2428 TCP 0.0.0.0:7982 machinename:0 LISTENING 2428 TCP 0.0.0.0:8080 machinename:0 LISTENING 12704 TCP 0.0.0.0:8500 machinename:0 LISTENING 2428

    即端口号和他们正在收听的进程ID

  2. 停止在您的端口号上运行的进程(在这种情况下,它是8080,进程ID是12704)

    Taskkill /F /IM 12704 (注意:提及正确的流程ID)

我的问题得到了解决,希望这有帮助!

您必须停止当前进程并运行新进程。 在Eclipse中,您可以按此按钮重新启动应用程序: 在此处输入图像描述

在我的情况下,错误发生在应用程序无法访问ssl的密钥库时。

以root用户身份启动应用程序修复了该问题。

由于嵌入式servlet容器的端口正在使用,这是典型的启动失败。

您的嵌入式tomcat容器无法启动,因为端口8080已在使用中。

只识别并停止正在侦听端口8080或配置(在您的application.properties文件中)此应用程序以侦听另一个端口的进程。

如果您的控制台出现任何错误,请说:“嵌入式servlet容器无法启动。 端口8080已经在使用中。“然后转到application.properties文件并添加此属性”server.port = 8090“。

实际上弹簧启动的默认端口是8080,如果该端口上还有其他东西,则会出现上述错误。 所以我们通过在application.properties文件中添加“server.port = 8090”来要求spring boot在其他端口上运行。

请参阅此链接 – http://www.nicheitskillshub.com/2017/07/first-spring-boot-application-in-eclipse.html?m=1

对于Mac用户(OS X El Capitan):您需要终止运行localhost:8080的端口。 为此,您需要在终端中执行两个命令。

sudo lsof -i tcp:8080

杀死-15 PID

NB! PID是第一个命令提供的数字。

第一个命令将为您提供localhost的PID:8080。 将第二个命令中的PID替换为第一个命令使您终止在localhost:8080上运行的进程的PID。

有两种方法可以解决此问题。首先尝试选项1,如果不起作用,请尝试选项2,问题就解决了。

1)在控制台的右上角有一个红色按钮,用于停止已经在此端口上运行的弹簧启动应用程序,只需单击红色按钮即可终止。

2)如果未激活红色按钮,则需要右键单击控制台并选择终止/断开所有。 希望这可以帮助。

额外提示: – 如果要在您选择的其他端口上运行服务器,请在您的maven项目的资源文件夹中创建名为application.properties的文件,并编写server.port = 3000以在端口3000上运行您的应用程序

我在这里做错了吗?

是的,你是。 重新启动服务器(如果STS中有按钮)或停止并启动它。 一个servlet容器已在端口8080上运行,并且您正尝试再次在端口8080上运行另一个。

只需单击红色按钮即可停止eclipse上的所有服务,而不是将应用程序重新运行为Spring Boot Application – 这对我有用。

在浏览器中打开“localhost:8080”,查看此端口上运行的是什么。 我做到了,我刚刚发现Oracle 10g XE在后台运行,所以我去了start-> Services并停止了所有oracle服务。 然后我重做mvnw spring-boot:run在IntelliJ上mvnw spring-boot:run ,它就像魔法一样运行。

在Linux机器上,保存bash脚本并执行它。 如果要释放端口8080,请在出现提示时输入8080

 echo "Enter port number to be closed :: " read port sudo kill $(sudo lsof -t -i:$port) 

在application.properties中创建一个简单的行,因为SERVER_PORT = 8090解决了这个问题。

  **Changing the port number on Windows** 

如上所述更改端口号。 右键单击该项目。 转到运行方式 – >运行配置—->在搜索字段中选择项目(或)类型项目名称,然后选择—>转到环境并提供所需的变量名称(SERVER_PORT)和变量编号(端口)数量)8213。