web-dev-qa-db-de.com

Bereitstellungsfehler: Das Starten von Tomcat ist fehlgeschlagen, der Server-Port 8080 wird bereits verwendet

Wenn ich mein Java-Projekt mit Netbeans ausführen, erhalte ich die folgende Fehlermeldung:

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)

Ich habe versucht, den Serverport auf 8081 zu ändern und den Port in tool-> server herunterzufahren. Es läuft einwandfrei, aber wieder, wenn ich irgendwelche Operationen durchführe und das Projekt ausführt, wird angezeigt " Bereitstellungsfehler: Starten von Tomcat ist fehlgeschlagen, der Serverport 8081 wird bereits verwendet "

Was wäre das Problem?

35
user660450

goto Befehl Eingabeaufforderung 

netstat -aon

für Linux

netstat -tulpn | grep 'your_port_number'

es wird dir so etwas zeigen

 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

prüfen Sie, welcher Prozess Ihren Port gebunden hat. Hier im obigen Beispiel ist es jetzt 248, wenn Sie sicher sind, dass Sie diesen Prozessfeuer beenden müssen 

Linux: 

kill -9 248

Windows: 

taskkill /f /pid 248

es wird diesen Prozess töten

101
Jigar Joshi

Wenn Sie sich hinter einem Proxy-Server befinden, könnte dieses Problem auftreten.

"Möglicherweise wurde die Tomcat-Fertigmeldung an den Proxy gesendet - und erreichte nie die IDE."

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

9
Mohamed Elwy

Beim Versuch der Bereitstellung hatte ich das gleiche Problem. Tomcat konnte nicht neu gestartet werden, da die Tomcat-Instanz ausgeführt wurde. Schließen Sie die IDE und überprüfen Sie den Task-Manager. Beenden Sie den laufenden Javaw-Prozess, der das Problem für mich gelöst hat.

6
Adi

Schauen Sie sich Ihre laufenden Prozesse an. Es scheint, als hätte Ihre aktuelle Tomcat-Instanz nicht angehalten. Es läuft noch und NetBeans versucht, eine zweite Tomcat-Instanz zu starten. Das ist der Grund für Ihre Ausnahme. Sie müssen nur die erste Instanz anhalten oder Ihren Code auf der aktuell ausgeführten Instanz bereitstellen

4
iSkriD

Durch das Ändern der Proxy-Einstellungen in "no Proxy" in Netbeans wurde das Tomcat-Problem behoben. Versuchen Sie, dies funktioniert ernsthaft.

3
surya

Unter Linux können Sie vorhandene Tomcats mit diesem Skript beenden

#/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
3
nkvnkv

Beenden Sie die vorherige Instanz von Tomcat oder den Prozess, der auf 8080 ausgeführt wird.

Gehen Sie zum Terminal und tun Sie dies:

lsof -i :8080

Die Ausgabe wird ungefähr so ​​sein:

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

Beenden Sie diesen Prozess mit seiner PID:

kill 76746

2
Balaji Dubey

Wählen Sie das Projekt aus -> Rechtsklick -> bereinigen und erstellen und führen Sie dann das Projekt erneut aus. 

Da mehrere Prozesse denselben Port bspw. Für Port 8086 binden könnten, muss ich alle mit dem Port verbundenen Prozesse mit PID beenden. Das könnte umständlich sein. 

1
W.Jack

Ändern Sie Ihren Standardport in [Tomcat_home_dir] /conf/server.xml Find 

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

Ändern Sie es in

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
0
y.hussain

Ich habe es behoben, indem ich Tomcat 8.5. * Durch Tomcat 7.0. * version ersetzt habe.

0
shivaji bhosale

Ändern Sie Ihre Tomcat-Portadresse in 8084 und Shut Down Port in 8025. Dies wird Ihr Problem lösen.

In anderen Fällen können Antivirenprogramme Probleme verursachen. Ich hatte dieses Problem mit der totalen Sicherheit von K7. In meinem Fall blockierte die K7 Firewall den 8084-Port. Die einfache Lösung besteht darin, eine Ausnahme zu Netbeans in der K7 Firewall-Liste hinzuzufügen.

Öffnen Sie dazu K7 und gehen Sie zu Einstellungen -> Firewall-Einstellungen -> wählen Sie Applications tab und suchen Sie nach Netbeans. 

Wählen Sie Netbeans und klicken Sie auf den Link edit. Wählen Sie im nächsten Bildschirm Vollzugriff gewähren Optionsfeld. 

Nun gehe zu Netbeans und starte den Server. 

0
Shashanth