Tomcat Server Error - Port 8080 already in use

I received the following error while attempting to execute a Servlet program in Eclipse Mars EE.

'Starting Tomcat v8.0 Sever at localhost' has encountered a problem.

Port 8080 required by Tomcat v8.0 Server at localhost is already in use. There may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).

What should I do to stop the process? I'm assuming that Tomcat 7 server must be stopped. How shall I do it if my operating system is Windows 8?

Error Screenshot:

error screen shot


Solution 1:

For Ubuntu/Linux

Step 1: Find the process id that is using the port 8080

netstat -lnp | grep 8080
or
ps -aef | grep tomcat

Step 2: Kill the process using process id in above result

kill -9 process_id

For Windows

Step 1: Find the process id

netstat -ano | findstr 8080

Step 2: Open command prompt as administrator and kill the process

taskkill /F /pid 1088

In my case port 8005 was already in use so I used the same above steps.

enter image description here

Solution 2:

All I had to do was to change the port numbers. enter image description here

  1. Open Eclipse

  2. Go to Servers panel

  3. Right click on Tomcat Server select Open, Overview window will appear.

  4. Open the Portstab. You will get the following:

    • Tomcat adminport

    • HTTP/1.1

    • AJP/1.3

  5. I changed the port number of HTTP/1.1 (i.e. to 8081)

  6. You might have to also change the port of Tomcat adminport (i.e. to 8006) and of AJP/1.3 (i.e. to 8010).

  7. Access your app in the browser at http://localhost:8081/...

Solution 3:

If you want to regain the 8080 port number you do so by opening the task manager and then process tab, right click java.exe process and click on end process as shown in image attached.

screen shot

Solution 4:

In case of MAC users, go to Terminal and do the following

lsof -i :8080 //returns the PID (process id) that runs on port 8080
kill 1234 //kill the process using PID (used dummy PID here)
lsof -i :8443
kill 4321

8080 is HTTP port and 8443 is HTTPS port, by default.

Solution 5:

netstat -ano | findstr 8080
taskkill /pid 21424 /F

execute the above command in command prompt first command will find the pid of the processes which are using port 8080 or any other port you are using. And in second command write the pid of instead of 21424.