Deployment error:Starting of Tomcat failed, the server port 8080 is already in use
Asked Answered
E

14

39

When I run my Java project using Netbeans I get the following error:

Deployment error:
Starting of Tomcat failed, the server port 8080 is already in use.
See the server log for details.
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:166)
        at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:104)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor619.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
        at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:277)
        at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:460)
        at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
Caused by: org.netbeans.modules.j2ee.deployment.impl.ServerException: Starting of Tomcat failed, the server port 8080 is already in use.
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance._start(ServerInstance.java:1297)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.java:1251)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.java:1062)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.start(ServerInstance.java:939)
        at org.netbeans.modules.j2ee.deployment.impl.TargetServer.startTargets(TargetServer.java:428)
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:143)
        ... 16 more
BUILD FAILED (total time: 4 seconds)

I tried changing the server port to 8081 and shutdown port in tool->server. It runs fine but again if I do any operations and run the project it says "Deployment error:Starting of Tomcat failed, the server port 8081 is already in use"

What would be the problem?

Ephesians answered 15/3, 2011 at 11:21 Comment(0)
B
107

goto command prompt

netstat -aon

for linux

netstat -tulpn | grep 'your_port_number'

it will show you something like

 TCP    192.1.200.48:2053      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2055      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2126      213.146.189.201:12350  ESTABLISHED     1308
 TCP    192.1.200.48:3918      192.1.200.2:8073       ESTABLISHED     1504
 TCP    192.1.200.48:3975      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:3976      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:4039      209.85.153.100:80      ESTABLISHED     248
 TCP    192.1.200.48:8080      209.85.153.100:80      ESTABLISHED     248

check which process has binded your port. here in above example its 248 now if you are sure that you need to kill that process fire

Linux:

kill -9 248

Windows:

taskkill /f /pid 248

it will kill that process

Byline answered 15/3, 2011 at 11:25 Comment(5)
@Szu Same as linux oneByline
@JigarJoshi for the linux command i receive: "netstat: n: unknown or uninstrumented protocol".Oke
on mac OS netstat tulpn | grep '8080' Byline
Thanks Jigar Joshi. Any idea why this port is staying open in the first place? I get a warning when stopping tomcat that thread http-apr-8080 was started but not closed. I can't find this thread when tomcat is running though (only http-apr-8080-exec-...).Operetta
You could look up which PID is holding that port and find out why it is still runningByline
M
9

If you are behind a proxy server this issue could happen i had the same issue and was solved by: Preferences -> General -> Proxy Settings -> No Proxy.

"Maybe the tomcat ready-message was sent to the proxy - and never reached the IDE."

found @: https://netbeans.org/bugzilla/show_bug.cgi?id=231220

Magen answered 1/12, 2014 at 19:35 Comment(1)
+1 I was using System Proxy Settings in NetBeans, started Fiddler (which modifies System Proxy Settings), it worked just fine. Then re-started NetBeans and got the "Starting of Tomcat failed, the server port 8084 is already in use."Caramelize
L
6

Take a look on your running processes, it seems like your current Tomcat instance did not stop. It's still running and NetBeans tries to start a second Tomcat-instance. Thats the reason for your exception, you just have to stop the first instance, or deploy you code on the current running one

Luminous answered 15/3, 2011 at 11:29 Comment(1)
or file an issue with the nb developers so this can get properly resolved for you and anyone else that may have run into this issue.Machination
S
6

I had the same problem when trying to deploy, tomcat failed to restart as Tomcat instance was running. Close the IDE and check TASk Manager - kill any javaw process running, that solved the problem for me.

Sox answered 17/3, 2011 at 16:44 Comment(0)
H
3

If on Linux you can kill existing Tomcats with this script

#/bin/bash
if [ `whoami` != root ]; then
    echo "Please run this script as root or using sudo"
    exit
fi
echo
echo "finding proceses that have name java and established connections status"
echo
echo "Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name"
netstat --tcp  --programs  | grep "ESTABLISHED" | grep "java"
echo
echo "finding proceses that use port 8080 or http-alt"
echo
netstat --tcp --programs | grep ':8080\|:http-alt'
echo -n "Do you wish to kill a process listed above?[Y/n]"
read choose
if [ "$choose" = "Y" ] || [ "$choose" = "y" ] || [ -z "$choose" ]
then
echo "enter pid to kill"
read procesId
kill -9 $procesId
fi
echo "done exiting"
exit 0
Henriques answered 19/9, 2012 at 17:20 Comment(0)
S
3

By changing proxy settings to "no proxy" in netbeans the tomcat prbolem got solved.Try this it's seriously working.

Salpinx answered 25/6, 2015 at 13:59 Comment(0)
C
2

Kill the previous instance of tomcat or the process that's running on 8080.

Go to terminal and do this:

lsof -i :8080

The output will be something like:

COMMAND   PID   USER      FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    76746   YourName  57u  IPv6 0xd2a83c9c1e75      0t0    TCP *:http-alt (LISTEN)

Kill this process using it's PID:

kill 76746

Cucullate answered 5/10, 2016 at 15:56 Comment(0)
C
2

Select the project -> Right-Click -> clean and build and then run the project again simply solve the problem for me.

As, multiple process could bind the same port for example port 8086, In that case I have to kill all the processes involved with the port with PID. That might be cumbersome.

Cryology answered 24/7, 2017 at 5:0 Comment(0)
H
1

Change your default port in [tomcat_home_dir]/conf/server.xml find

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

change it to

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
Hangdog answered 9/1, 2018 at 6:40 Comment(0)
C
0

Change your Tomcat port address to 8084 and Shut Down Port to 8025. This will resolve your problem.

In other cases antivirus programs may cause problems. I had this problem with K7 total security. In my case K7 Firewall was blocking the 8084 port. The simple solution is to add an exception to Netbeans in K7 Firewall list.

In order to do that, open K7 and goto Settings -> Firewall Settings -> select Applications tab and find Netbeans.

Select Netbeans and click on edit link. On next screen select Grant Full Network access radio button.

Now goto Netbeans and start the server.

Centreboard answered 5/6, 2016 at 15:12 Comment(0)
U
0

I resolved it by replacing Tomcat 8.5.* with Tomcat 7.0.* version.

Unstoppable answered 11/2, 2019 at 8:40 Comment(0)
S
0

This error message can also be caused by SELinux. Check if SELinux is enabled with getenforce

You need to adjust SELinux to use your port and restart.

I.E.

semanage port -a -t http_port_t -p tcp 9080 2>/dev/null || semanage port -m -t http_port_t -p tcp 9080
Sande answered 7/11, 2019 at 16:50 Comment(0)
E
0

I tried No Proxy Settings , killing the process id . Some times they do work, But unfortunately they did not this time. So I tried the following. In the Services Tab in NetBeans - Right Click on Apache Server {Version} - Platform Tab - Uncheck "Use IDE Proxy Settings". This solved the issue in my case.

Eriha answered 29/9, 2021 at 11:31 Comment(0)
T
-1

I also had this problem. I changed port and did other things, but they didn't help me. In my case, I connected Tomcat to IDE after installing Netbeans (before). I just uninstalled Netbeans and Tomcat after that I reinstall Netbeans along with Tomcat (NOT separately). And the problem was solved.

Tout answered 13/12, 2018 at 5:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.