Spring启动错误

时间:2018-04-28 16:15:55

标签: java spring-boot

启动spring-boot应用程序时出现以下错误。这是我的第一个春季启动项目。所以,我不确定错误以及如何解决它。

申请失败

说明

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

动作:

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

2018-04-28 21:42:16.248  INFO 13196 --- [lication.main()] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@57ac5b74: startup date [Sat Apr 28 21:42:11 IST 2018]; root of context hierarchy
2018-04-28 21:42:16.249  INFO 13196 --- [lication.main()] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
[WARNING] 
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.maven.RunMojo$LaunchRunner.run(RunMojo.java:423)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.boot.context.embedded.tomcat.ConnectorStartFailedException: Connector configured to listen on port 8080 failed to start
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.checkThatConnectorsHaveStarted(TomcatEmbeddedServletContainer.java:222)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:198)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
at com.journaldev.elasticsearch.Elastic6Application.main(Elastic6Application.java:12)
... 6 more

4 个答案:

答案 0 :(得分:1)

运行lsof -n -i4TCP:8080以查找使用8080的进程的PID。您将获得类似的输出:

COMMAND   PID    USER   FD   TYPE NODE NAME
java    72180 hisener  223u  IPv6 TCP *:http-alt (LISTEN)

然后运行kill -9 72180以终止进程。 (将72180更改为PID)。

现在,您应该可以运行Spring启动应用程序了。

对于windows,相当于上面的命令:

查找使用端口的进程的PID:netstat -aon | find "8080"

通过PID终止进程:taskkill /F /PID 72180

答案 1 :(得分:1)

  1. 运行sudo lsof -i tcp:8080获取PID,然后使用kill -9 xxxxx终止进程,其中“ xxxxx”是您的PID,现在您可以在端口8080处重新启动应用程序

  2. 将应用程序的服务器端口更改为8080以外的端口。您可以通过以下方法来执行此操作:转到application.properties并键入server.port = xxxx,其中xxxx是要在其上运行应用程序的端口。您也可以输入server.port=0,这将分配一个可用的随机端口。在应用程序启动时,您可以在日志中找到端口,然后在该端口上运行应用程序

答案 2 :(得分:0)

我假设您已经有一个正在侦听端口8080的进程。在进程表中查找java(或其他)进程并将其终止。有时在春季启动没有停止并在后台运行时会发生这种情况

答案 3 :(得分:0)

使用其他端口。在application.properties中手动配置端口,如下所示 server.port = 8082或其他端口。