Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Terminating mvn spring-boot:run doesn't stop tomcat

I can successfully start spring-boot with mvn spring-boot, the documentation mentions to gracefully exit the application hit ctrl-c.

Terminate batch job (Y/N)? Y 

The maven process does terminate but Tomcat is still running and I can still hit the web-page. When I try to start spring-boot again it fails to start Tomcat because the port is in use.

  .   ____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: Spring Boot ::  (v1.1.0.BUILD-SNAPSHOT)  2014-05-02 12:13:57.666  INFO 6568 --- [           main] Example                                  : Starting Example on challenger with PID 6568 (E:\workspace\SpringBoot\target\cla sses started by steven in E:\workspace\SpringBoot) 2014-05-02 12:13:57.707  INFO 6568 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWeb ApplicationContext@11ecab7c: startup date [Fri May 02 12:13:57 EDT 2014]; root of context hierarchy 2014-05-02 12:13:58.097  INFO 6568 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean : class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfi gure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class pat h resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; laz yInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAuto ConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfig ure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]] 2014-05-02 12:13:58.682  INFO 6568 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Server initialized with port: 8080 2014-05-02 12:13:58.892  INFO 6568 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat 2014-05-02 12:13:58.892  INFO 6568 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.53 2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext 2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1277 ms 2014-05-02 12:13:59.453  INFO 6568 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/] 2014-05-02 12:13:59.455  INFO 6568 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2014-05-02 12:13:59.570 ERROR 6568 --- [           main] o.a.coyote.http11.Http11NioProtocol      : Failed to start end point associated with ProtocolHandler ["http-nio-8080"]  java.net.BindException: Address already in use: bind         at sun.nio.ch.Net.bind0(Native Method)         at sun.nio.ch.Net.bind(Net.java:344)         at sun.nio.ch.Net.bind(Net.java:336)         at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)         at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)         at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)         at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647)         at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449)         at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)         at Example.main(Example.java:16)  2014-05-02 12:13:59.571 ERROR 6568 --- [           main] o.apache.catalina.core.StandardService   : Failed to start connector [Connector[org.apache.coyote.http11.Http11NioProtocol- 8080]]  org.apache.catalina.LifecycleException: Failed to start component [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)         at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)         at Example.main(Example.java:16) Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed         at org.apache.catalina.connector.Connector.startInternal(Connector.java:1014)         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)         ... 18 common frames omitted Caused by: java.net.BindException: Address already in use: bind         at sun.nio.ch.Net.bind0(Native Method)         at sun.nio.ch.Net.bind(Net.java:344)         at sun.nio.ch.Net.bind(Net.java:336)         at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)         at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)         at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)         at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647)         at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449)         at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007)         ... 19 common frames omitted  2014-05-02 12:13:59.572  INFO 6568 --- [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat 2014-05-02 12:13:59.580  INFO 6568 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/E:/workspace/SpringBoot/src/m ain/resources, file:/E:/workspace/SpringBoot/src/main/resources, file:/E:/workspace/SpringBoot/target/classes/, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring -boot-starter-web/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-web-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter/1.1.0.BUI LD-SNAPSHOT/spring-boot-starter-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot/1.1.0.BUILD-SNAPSHOT/spring-boot-1.1.0.BUILD-SNA PSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.1.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-1.1.0.BUILD-SNAPSHOT.jar, file:/C: /Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-logging-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/. m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar, file:/C:/Users/steven/.m2 /repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar, file:/C:/Users/st even/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar, file:/C:/Users/steven/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar, f ile:/C:/Users/steven/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.1.0.BUILD -SNAPSHOT/spring-boot-starter-tomcat-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/7.0.53/tomcat-embed-core-7.0.53.jar, f ile:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/7.0.53/tomcat-embed-el-7.0.53.jar, file:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-e mbed-logging-juli/7.0.53/tomcat-embed-logging-juli-7.0.53.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar, fi le:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/co re/jackson-core/2.3.3/jackson-core-2.3.3.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-web/4.0.3.RELEASE/spring-web-4.0.3.RELEASE.jar, file:/C:/Users/steven/ .m2/repository/org/springframework/spring-aop/4.0.3.RELEASE/spring-aop-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file :/C:/Users/steven/.m2/repository/org/springframework/spring-beans/4.0.3.RELEASE/spring-beans-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-cont ext/4.0.3.RELEASE/spring-context-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-core/4.0.3.RELEASE/spring-core-4.0.3.RELEASE.jar, file:/C:/Users /steven/.m2/repository/org/springframework/spring-webmvc/4.0.3.RELEASE/spring-webmvc-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-expression/4 .0.3.RELEASE/spring-expression-4.0.3.RELEASE.jar] Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedde d.EmbeddedServletContainerException: Unable to start embedded Tomcat         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476) [INFO] ------------------------------------------------------------------------         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) [INFO] BUILD SUCCESS         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680) [INFO] ------------------------------------------------------------------------         at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [INFO] Total time: 4.653 s         at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)         at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)         at Example.main(Example.java:16) Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat [INFO] Finished at: 2014-05-02T12:13:59-05:00         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:106) [INFO] Final Memory: 16M/232M [INFO] ------------------------------------------------------------------------         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)         at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)         ... 7 more Caused by: java.lang.IllegalStateException: Tomcat connector in failed state         at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:102)         ... 12 more 

To proceed I have to manually terminate the running process. Is this a bug or am I missing something?

like image 714
szxnyc Avatar asked May 02 '14 16:05

szxnyc


People also ask

How do I stop embedded Tomcat in spring boot?

If we want to exclude tomcat from spring boot, we don't need to do much, we just need to add one additional block(<exclusions>) to the Spring Boot dependency. <exclusions> tag is used to make us sure that given server/artifactId is being removed at the time of build.

Does spring boot run on Tomcat?

By default, Spring Boot uses Tomcat 7. If you want to use Tomcat 8, just say so! You need only override the Maven build's tomcat. version property and this will trigger the resolution of later builds of Apache Tomcat.

Can we override Tomcat server in spring boot?

The default Embedded Web Servers in Spring-Boot is Tomcat , but you can easily change it to others.


1 Answers

It still happens to me on version 1.1.9 running on windows 7.

So after hitting Ctrl C. The fastest way to kill the background java will be .

Find the java PID

     c:\>netstat -ano | find "8080"      TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1196      TCP    [::]:8080              [::]:0                 LISTENING       1196      c:\>taskkill /F /PID 1196      SUCCESS: The process with PID 1196 has been terminated. 

I am assuming in the example above that you are running on http port 8080

For Mac Users:

     $lsof -i :8080      COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME      java    SOME_PID user  417u  IPv6 0xa4b3be242c249a27      0t0  TCP *:name (LISTEN)      kill -9 SOME_PID 
like image 70
Haim Raman Avatar answered Sep 17 '22 17:09

Haim Raman