[java] Errore di distribuzione: l'avvio di Tomcat non è riuscito, la porta del server 8080 è già in uso



Answers

Se sei dietro un server proxy questo problema potrebbe accadere che ho avuto lo stesso problema ed è stato risolto da: Preferenze -> Generale -> Impostazioni proxy -> Nessun proxy.

"Forse il messaggio pronto per il tomcat è stato inviato al proxy e non ha mai raggiunto l'IDE."

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

Question

Quando eseguo il mio progetto java usando netbeans ottengo il seguente errore:

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)

Ho provato a cambiare la porta del server in 8081 e la porta di arresto in tool-> server, funziona bene ma di nuovo se faccio qualche operazione ed eseguo il progetto dice " Errore di distribuzione: avvio di Tomcat fallito, la porta del server 8081 è già in uso "Quale sarebbe il problema può qualcuno aiutarmi.




Dai un'occhiata ai tuoi processi in esecuzione, sembra che la tua attuale istanza Tomcat non si sia fermata. È ancora in esecuzione e NetBeans tenta di avviare una seconda istanza Tomcat. Questo è il motivo della tua eccezione, devi solo interrompere la prima istanza o distribuire il tuo codice su quello corrente in esecuzione




Cambia il tuo indirizzo della porta Tomcat in 8084 e porta Shut Down Port in 8025 . Questo risolverà il tuo problema.

In altri casi i programmi antivirus possono causare problemi. Ho avuto questo problema con la sicurezza totale di K7. Nel mio caso K7 Firewall stava bloccando la porta 8084. La soluzione semplice è aggiungere un'eccezione a Netbeans nell'elenco K7 Firewall.

Per farlo, apri K7 e vai a Impostazioni -> Impostazioni firewall -> seleziona la scheda Applicazioni e trova Netbeans.

Seleziona Netbeans e fai clic sul link modifica . Nella schermata successiva selezionare il pulsante di opzione Concedi accesso completo alla rete .

Ora vai a Netbeans e avvia il server.




Seleziona il progetto -> Fai clic con il pulsante destro del mouse -> pulisci e crea e poi esegui di nuovo il progetto, semplicemente risolvendo il problema per me.

Poiché, più processi possono associare la stessa porta ad esempio la porta 8086, in quel caso devo uccidere tutti i processi coinvolti con la porta con PID. Potrebbe essere complicato.




Se su Linux puoi uccidere i Tomcat esistenti con questo 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



Ho risolto questo problema, in Windows 8.1 x64.

  1. goto - %userprofile%\AppData\Roaming\NetBeans\8.1\apache-tomcat-8.0.27.0_base\work\Catalina\localhost
  2. Elimina tutte le cartelle senza cartelle (manager e ROOT)
  3. goto - %userprofile%\AppData\Roaming\NetBeans\8.1\apache-tomcat-8.0.27.0_base\conf\Catalina\localhost
  4. elimina tutti i file senza ( manager.xml e ROOT.xml )
  5. Vai a NetBeans e avvia il server Tomcat



Nel mio caso ho accidentalmente aggiunto due istanze di server e ho ricevuto questo errore .. Basta dare un'occhiata nella scheda Services in Servers e rimuovere una delle istanze ... e riavviare il server ... :)






Related