Diverse porte (8005, 8080, 8009) richieste da Tomcat Server su localhost sono già in uso

Ricevo il seguente errore quando provo a eseguire un semplice programma JSP su Tomcat in Eclipse.

Diverse porte (8005, 8080, 8009) richieste dal server Tomcat v6.0 su localhost sono già in uso. Il server potrebbe già essere in esecuzione in un altro processo o un processo di sistema potrebbe utilizzare la porta. Per avviare questo server sarà necessario interrompere l’altro processo o modificare i numeri di porta.

Come è causato e come posso risolverlo?

Hai un’altra istanza di Tomcat già in esecuzione. Puoi confermarlo andando su http://localhost:8080 nel tuo browser web e verifica se ottieni la home page predefinita di Tomcat o una pagina di errore 404 specifica per Tomcat. Entrambe sono prove altrettanto valide che Tomcat funziona bene; in caso contrario, si otterrebbe un messaggio di errore di timeout della connessione HTTP specifico del browser.

Devi spegnerlo. Vai a /bin sottocartella della cartella di installazione di Tomcat ed esegui lo script shutdown.bat (Windows) o shutdown.sh (Unix). Se invano, chiudere Eclipse e quindi aprire il task manager e terminare tutti i processi java e / o javaw .

Oppure, se per qualche motivo l’hai installato come servizio Windows (questo è inteso per la produzione e non è utile quando stai solo sviluppando), apri il gestore servizi ( Start> Esegui> services.msc ) e interrompi il servizio Tomcat. Se necessario, disinstallare del tutto il servizio di Windows. Per lo sviluppo, basta il file ZIP.

O se il tuo intento è di eseguire due istanze di Tomcat contemporaneamente, devi configurare la seconda istanza per l’ascolto su porte diverse. Consulta la documentazione di Tomcat per maggiori dettagli.

 kill $(ps -aef | grep java | grep apache | awk '{print $2}') 
  • non è necessario riavviare Eclipse
  • se ottieni l’errore sopra riportato, inserisci questa riga nel terminale
  • di nuovo avvia il tomcat in Eclipse.
  • funziona solo su sistemi basati su Linux (Ubuntu ..etc)

Se stai usando Windows, prova questo nel prompt della riga di comando:

 netstat -ano 

Questo mostrerà tutte le porte in uso e l’ID processo PID # del processo che sta usando quella porta. Quindi Ctrl + Alt + Canc e aprire Task Manager per vedere quale processo è quello.

È quindi ansible scegliere di chiuderlo / arrestarlo o configurare il server in modo che utilizzi un’altra porta. Per verificare se la nuova porta scelta (diciamo 8010) è disponibile, procedere come segue:

 netstat -ano | grep 8010 

Se non restituisce alcuna riga, allora stai bene.

Per cambiare porta vai alla vista Server, apri server.xml e cambia la porta lì. Il mio ha questa voce:

 Connector port="8010" protocol="AJP/1.3" redirectPort="8443" 

Se sei in ambiente Mac, ecco cosa ho fatto.

Trova l’ID di processo in esecuzione su questa porta dal terminale, ad es. 8080:

 lsof -i :8080 

e uccidilo:

 kill -9  

Passi per liberare la porta che è già utilizzata per eseguire il server tomcat in Eclipse

Ad esempio, supponiamo che venga utilizzata la porta 8080, per cui è necessario liberare 8080 per eseguire tomcat

Passo 1:

C: \ Utenti \ nomeutente> netstat -o -n -a | findstr 0.0: 8080

TCP 0.0.0.0:3000 0.0.0.0:0 ASCOLTO 3116

Ora, possiamo vedere che la porta LISTENING è 3116 per 8080,

Dobbiamo uccidere 3116 ora

Passo 2:-

C: \ Utenti \ Nome utente> taskkill / F / PID 3116

Passaggio 3: vai su Eclipse e avvia Server, verrà eseguito

Se dice Eclipse

Diverse porte (8005, 8080, 8009) richieste dal server Tomcat v6.0 su localhost sono già in uso

Questo errore deriva dal fatto che tomcat potrebbe essere in esecuzione in background, quindi prima interrompi il server … segui i dettagli di seguito.

La soluzione è:

  1. Apri la vista “console” (finestra-> mostra vista-> Console)
  2. Quindi interrompere il server tomcat.
  3. Quindi apri la vista “server” e avvia il server che funzionerà.

Grazie!

Se si utilizza Eclipse, fare doppio clic sui server e fare doppio clic sul server tomcat, quindi verrà aperto un file. In quel file cambia la porta HTTP in un altro numero di porta e salva ( Ctrl + S ), quindi riavvia il server.

Non ho altre istanze di Tomcat che eseguono annunci in nessun altro processo utilizzando “Porta Tomcat” (nel mio caso, la porta 8088). Eclipse invia lo stesso messaggio all’avvio di Tomcat:

…. Il server potrebbe già essere in esecuzione in un altro processo o un processo di sistema potrebbe utilizzare la porta. Per avviare questo server sarà necessario interrompere l’altro processo o modificare i numeri di porta.

Risolvo il problema in questo modo:

  • vai al cestino di Tomcat al prompt
  • lanciare startup.bat
  • lancia shutdown.bat
  • start Tomcat di Eclipse

Quello che ho fatto dopo aver letto tutta la risposta suggerita e come so che il mio porto era già in uso. Ho fatto doppio clic su Tomcat sotto la scheda Server in eclipse e ho aperto le informazioni di panoramica e quindi ho trovato le informazioni sulla porta. Ho appena cambiato la porta in conflitto mentre la mia era la porta 8009 (errore menzionato durante l’avvio del server). L’ho cambiato in 8008 e funziona perfettamente. Provare se la porta modificata non sarà in uso. Il server verrà avviato.

Passo 1: netstat -a -o -n e verrà visualizzato un elenco di rete, cercare l’indirizzo locale come 127.0.0.1:8080 e notare il PID (eq 3624)

 C:\>netstat -a -o -n 

Passaggio 2: taskkill / F / PID 3624 . Esegui questo comando per uccidere quel processo.

 C:\>taskkill /F /PID 3624 

link per postare

Su Windows usa il comando per fermare l’istanza di tomcat già in esecuzione e prova a eseguirlo di nuovo in eclipse, potrebbe funzionare.

 net stop tomcat7 

Oppure puoi cambiare la porta nel XML del server se vuoi semplicemente eseguire su altre porte.

Un modo semplice per risolvere il tuo problema:

Il server potrebbe già essere in esecuzione in un altro processo o un processo di sistema potrebbe utilizzare la porta. Per uccidere quella porta, fai quanto segue:

1) Scarica TCPView (solo 285kb) dal seguente link.

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2) Estrai la cartella e avvia l’ applicazione TCPView .

3) Fare clic con il pulsante destro del mouse su java.exe (poiché le porte 8009,8005 sono comunemente utilizzate dal processo java) e selezionare l’opzione Termina processo .

questo fermerebbe facilmente un altro processo ..

NOTA : l’esecuzione di TOMCATPATH ​​/ bin / shutdown.bat potrebbe non arrestare Tomcat quando contiene alcuni demoni o thread non gestiti. In questi casi, TCPView funziona correttamente senza problemi.

Se si è in EE Java prospettico in Eclipse e si tenta di avviare il server Tomcat in Eclipse in modalità di debug, si otterranno tali errori. Devi passare al debug prospect in Eclipse. Ho risolto il mio problema in questo modo.

A volte se le porte non vengono liberate anche dopo aver tentato shutdown.bat come suggerito da @BalusC, è ansible terminare il processo javaw. Segui i passaggi seguenti:

  1. Fai clic su Start Menu e apri “Windows powershell”
  2. Fare clic con il tasto destro prima di aprire e selezionare “Esegui come amministratore”
  3. Inserisci il comando ps. Potresti vedere un’immagine come segue: Powershell mostra le proiezioni correnti in esecuzione

  4. Vedi il numero di processo del processo “javaw”. Il numero del processo è il numero più a destra nelle colonne, ad esempio ho evidenziato nel numero del processo di immagine di javaw.

  5. Inserisci il comando kill. javaw viene ucciso e ora devi essere in grado di eseguire il programma.

Ecco un’altra opzione da provare se nessuno degli sforzi di cui sopra ha aiutato. È ansible che si utilizzi Eclipse da un’unità condivisa (ad esempio, H 🙂 . In tal caso, spostare / copiare l’intera directory Eclipse in C: e riprovare.

My Eclipse non ha potuto aprire le porte per il server Tomcat (con l’errore sopra riportato) e nemmeno connettersi a Internet. Ho provato anche un altro plug-in Tomcat (Sysdeo) che non è riuscito ad aprire anche le porte.

Queste sono le opzioni che ho provato:

Controlla e uccidi altre istanze di Tomcat

  • Nel prompt dei comandi, netstat -ano e verificare se altri processi utilizzano le porte in conflitto.
  • Trova il PID e uccidilo
  • Prova ad avviare nuovamente il server.

Cambia Tomcat Ports in Eclipse

  • Nella scheda Server Eclipse, fare doppio clic sull’istanza Tomcat. Questo aprirà la scheda di configurazione.
  • In Porte, modifica i numeri di porta. (ad es. 18080).

Elimina java.exe e javaw

Vedi la mia altra risposta per Eclipse che non si connette a Internet ( https://stackoverflow.com/a/37246087/4212710 ).

Per gli utenti di Windows:

Vai a Task Manager direttamente con combinazione di tasti CTRL + MAIUSC + ESC.

Elimina i processi “java.exe” facendo clic con il pulsante destro del mouse e selezionando “Termina operazione”.

Ho controllato tutte le risposte ma ho informing only to kill PID .

Nel caso in cui tu abbia l’accesso al terminale condiviso da tutti, non sarà di aiuto o forse non hai il permesso di uccidere PID .

In questo caso, quello che puoi fare è:

Double click on server

Go to Overview and change ports in Ports questo modo:

inserisci la descrizione dell'immagine qui

Su Eclipse effettua una cancellazione raw della cartella di configurazione di Tomcat sotto il progetto “Server”. L’ho provato come ultima speranza e ha funzionato.

In caso di Windows, ho sperimentato una nuova roba … fermare Tomcat dalla cartella / bin non rilascerà immediatamente la porta 8080. Ci vogliono circa 5-10 minuti per rilasciare la porta. Dopo 10 minuti di nuovo se provo a eseguire il mio progetto Esegui-> Esegui sul server .. consente di eseguire.

Non sono sicuro che la mia comprensione sia corretta!

Fare riferimento al seguente blog “come uccidere tomcat senza dover riavviare il computer”

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

Spero che questo aiuti qualcuno in futuro.

La soluzione più semplice che funziona per me è l’eliminazione delle mie attuali webapps distribuite da Tomcat attraverso la scheda “Server”. Una volta rimossi, il problema scompare. Basta ridistribuire il progetto andando su Esegui come> Esegui su server.

Si verifica quando gli altri membri del progetto utilizzano anche gli stessi numeri di porta che si stanno utilizzando! fare doppio clic sul server Tomcat, modificare i numeri di porta su qualsiasi cosa 8585 o qualsiasi altra cosa. Il codice inizierà ora a funzionare!

Il problema si verifica spesso quando Apache Tomcat non riesce a terminare correttamente, anche se è stata inviata un’istruzione di spegnimento. Nel mio caso, utilizzando Tomcat 8, ciò accade con fastidiosa regolarità. Fortunatamente, è ansible utilizzare Windows PowerShell e il comando netstat per creare un semplice script per terminare il processo.

Il seguente script PowerShell analizzerà l’output di netstat per trovare qualsiasi processo in ascolto su 127.0.0.1:8005 , estrarne il PID e quindi ucciderlo:

 netstat -a -o -n ` | select -skip 4 ` | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} ` | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} ` | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] } 

Se il tuo server.xml configura Tomcat per utilizzare una porta o un IP diversi, modifica l’espressione regolare sulla quarta riga dello script di conseguenza.

Infine, devo sottolineare che la situazione è migliore su Linux perché puoi istruire Tomcat a salvare il suo PID su un file all’avvio e utilizzare un interruttore per forzare l’arresto, in seguito – lo script di spegnimento per i sistemi ‘nix presenta già il non è richiesta la capacità di uccidere il processo e il lavoro di investigatore con netstat .

Come uccidere un servizio Windows usando PID –

  1. apri il prompt dei comandi e digita netstat -ano
  2. trova il PID delle porte in uso, in questo caso sarà 8080, 8005,8009. Diciamo che il PID di queste porte è 5760.
  3. Ora digitare taskkill /f /pid 5760
  4. chiuderà il PID e le porte saranno disponibili per l’uso. Ora puoi avviare tomcat normalmente dai servizi di Windows o da eclipse stessa.

Grazie

uccidere un servizio di Windows che è bloccato in arresto o in partenza

Diverse porte (8005, 8080, 8009) richieste da Tomcat vX.X Server su localhost sono già in uso

Per verificare se un’altra istanza di Tomcat è già in esecuzione o un altro processo utilizza le porte che è ansible utilizzare:

netstat -b -a nel prompt dei comandi di windows. Elenca le porte in uso e fornisce l’eseguibile che sta utilizzando ciascuna di esse. Devi essere nel gruppo admin per fare questo.

Potresti ottenere qualcosa di simile a questo:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

Aprire il task manager Ctrl + Shift + Esc e uccidere Tomcat7.exe o qualsiasi altro processo utilizzando queste porte.

Probabilmente il tuo Tomcat è già in esecuzione. Ecco perché hai un errore. Ho avuto lo stesso problema prima. L’ho risolto molto semplicemente:

  1. Riavvia il tuo computer
  2. Apri Eclipse
  3. Esegui il tuo Tomcat

È tutto.

In Windows OS fai clic destro sulla barra delle applicazioni -> avvia task manager -> processa quindi controlla java.exe o javaw è in esecuzione se è in esecuzione, quindi fai clic su di esso e fai terminare il processo quindi riavvia il tuo tom cat server.

  1. alcune volte skype occuperà la porta 80 in quel caso modificherà le impostazioni skype e metterà 81 per skype o cambierà la configurazione di tomcat.

Se il problema sopra riportato si verifica nei sistemi operativi basati su Windows 7 o 10, il problema si verifica perché Tomcat è in esecuzione come servizio di Windows. Per interrompere Tomcat in esecuzione come Servizi Windows, aprire il Pannello di controllo di Windows. Trova il servizio “Apache Tomcat” e fermalo. L’altro modo è quello di terminare il processo in esecuzione sulla porta 8080 usando cmd.

Apri cmd eseguendolo come amministratore.

  1. C: \ users \ username> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 ASCOLTO 2160.
  3. Il precedente 2160 è id processo del processo in esecuzione sulla porta 8080 e uccide tale processo utilizzando il seguente comando
    C: \ users \ username> taskkill / F / PID 2160
  4. Vai a IDE e avvia Server, verrà eseguito

Potrebbe essere perché non stai fermando il tuo servizio Tomcat correttamente. Per fare ciò, apri il tuo task manager lì puoi vedere un servizio javaw.exe . Prima interrompi quel servizio. Ora riavvia il tuo tomcat funziona bene.