I have strange thing when I try to modify Spring project inside my Spring Tool Suite. On the first load (deploy) everything is fine, application compiles and runs on localhost:8080
When I change something inside code and try to redeploy it (Run it again - Run As Spring Boot App) I get error message
*************************** APPLICATION FAILED TO START
Description:
The Tomcat connector configured to listen on port 8080 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 8080, or configure this application to listen on another port.
2016-10-19 00:01:22.615 INFO 10988 --- [ main] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3023df74: startup date [Wed Oct 19 00:01:19 CEST 2016]; root of context hierarchy 2016-10-19 00:01:22.616 INFO 10988 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
If I shutdown process on that port manually everything works fine again, but this can't be right way of redeploying Spring app. Am I doing something wrong here?
I'm using :: Spring Boot :: (v1.4.1.RELEASE)
P.S. I'm aware that I can setup some kind of hot-swap mechanism to have automatic reload of page after I change code, but for now I would like to resolve this issue first.
Thanks for any kind of help or info.
On Linux Machine, save the bash script and execute it. If you want to free port 8080, Input 8080 when prompted
For Mac users(OS X El Capitan): You need to kill the port that localhost:8080 is running on. To do this, you need to do two commands in the terminal.
sudo lsof -i tcp:8080
kill -15 PID
NB! PID IS A NUMBER PROVIDED BY THE FIRST COMMAND.
The first command will give you the PID for the localhost:8080. Replace the PID in the second command with the PID that the first command gives you to kill the process running on localhost:8080.
Create
application.properties
file undersrc/main/resources
folder and write content asIts runs fine. But every time before run need to stop application first by click on red button upper on the IDE
or try
The reason is one servlet container is already running on port 8080 and you are trying to run another one on port 8080.
Check what processes are running at available ports.
netstat -ao |find /i "listening"
click here to view image ORnetstat -ano | find "8080"
(Note: 8080 is port fail to start) click here to view imageTaskkill /F /IM 6592
(Note: Mention correct Process Id) click here to view image right click on the console and select terminate/disconnect allGo to Task Manager and end Java(tm) platform se binary click here to view image https://www.google.com/search?q=what+is+java(tm)+platform+se+binary&oq=what+is+java(tm)+platform+se+binary&aqs=chrome..69i57.26349j1j7&sourceid=chrome&ie=UTF-8
hi creating a simple line in application.properties as SERVER_PORT=8090 solved the issue.
If you got any error on your console by saying, “Embedded servlet container failed to start. Port 8080 was already in use.” Then go to application.properties file and add this property “server.port = 8090”.
Actually the default port for spring boot is 8080, if you have something else on that port, the above error will occur. So we are asking spring boot to run on other port by adding “server.port = 8090” in application.properties file.