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


258

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 dovrai interrompere l'altro processo o modificare il numero (i) dei port.

Come viene causato e come posso risolverlo?


Ho avuto un problema simile che si è rivelato essere il firewall di Windows.
James Oravec,

Probabilmente un processo non morto sta mantenendo in vita il tuo gatto selvatico. termina il processo trovando il suo ID e terminandolo o riavviando il computer.
Felipe Leão,

è possibile utilizzare questi comandi per interrompere i servizi tomcat già in esecuzione dalla console di comando. netstat -ano | findStr 8080per trovare i servizi in esecuzione e quindi trovare l'id del processo e copiare il pid ed eseguire nuovamente il comando cometaskkill /F /PID pid_number
Mdhar9e

Risposte:


473

Hai già un'altra istanza di Tomcat in esecuzione. Puoi confermarlo accedendo al http://localhost:8080tuo browser web e verificare se ottieni la home page predefinita di Tomcat o una pagina di errore 404 specifica di Tomcat. Entrambe sono prove altrettanto valide che Tomcat funzioni bene; in caso contrario, verrà visualizzato un messaggio di errore di timeout della connessione HTTP specifico del browser.

Devi spegnerlo. Vai alla /binsottocartella 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 javae / o javawprocessi.

O se lo hai effettivamente installato come servizio Windows per qualche motivo (questo è inteso per la produzione ed è inutile quando stai solo sviluppando), apri il gestore servizi ( Start> Esegui> services.msc ) e arresta il servizio Tomcat. Se necessario, disinstallare del tutto il servizio Windows. Per lo sviluppo, è sufficiente solo il file ZIP.

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


1
perfetto, questo mi ha tormentato per sempre. L'ho eseguito come sh shutdown.shnel terminale all'interno della directory / bin.
Danny Englander,

2
Ciao BalusC, mi piaci! Non ce n'è shutdown.batnella mia cartella bin. Tomcat è stato installato come servizio e non come zip. L'arresto del servizio Tomcat nei servizi ha risolto il problema. Grazie. Chenqui.
Erran Morad,

1
@Borat: Prego. Tieni presente che sarebbe meglio disinstallare il servizio e ottenere invece lo zip.
BalusC,

6
"uccidi tutti i processi java e / o javaw" ha funzionato per me, grazie.
Thariq Nugrohotomo,

3
Apertura del system monitoro task managere uccidendo un processo java che utilizza about 400 MBo più RAManche risolvere il problema. Sta inconsapevolmente riservando il processo.
vipera

55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • non è necessario riavviare Eclipse
  • se viene visualizzato l'errore sopra riportato, basta inserire questa riga nel terminale
  • avviare nuovamente il tomcat in Eclipse.
  • funziona solo su sistemi basati su Linux (Ubuntu ..etc)

6
Questo è megliokill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay

Questo non funziona per me (menta 17.1). Mi dà solo l'aiuto per il killcomando.
Deleet,

Questo ha funzionato per me. Tuttavia, volevo sapere se ho 2 istanze in esecuzione e devo forzarne uno usando questo metodo, come faccio a capire quale chiudere. Grazie
Gautam il

29

Se si esegue Windows, provare 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 utilizzando quella porta. Quindi Ctrl+ Alt+ Dele apri Task Manager per vedere quale processo è quello.

È quindi possibile scegliere di chiuderlo / arrestarlo o configurare il server per utilizzare 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 la porta vai alla vista Server, apri server.xml e modifica la porta lì. Il mio ha questa voce:

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

Si prega di vedere la mia nuova risposta in cui includo uno script di PowerShell per automatizzare questo senza richiedere l'apertura di Task Manager.
Xharlie,

1
findstrper quelli senza grep.
Devo dire che il

25

Se sei su un ambiente Mac, ecco cosa ho fatto.

Trova l'id di processo in esecuzione su questa porta dal terminale, ad esempio 8080:

lsof -i :8080

e uccidilo:

kill -9 <PID>  

Esempio:

Potresti vedere il seguente risultato:

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

e uccidilo: ( kill -9 21347)


20

Passaggi per liberare la porta che è già utilizzata per eseguire il server Tomcat in Eclipse

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

Passo 1:

C: \ Users \ 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: \ Users \ nomeutente> taskkill / F / PID 3116

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


14

Se usi Eclipse, fai doppio clic sui server e fai 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.


Questo ha funzionato per me, mentre le altre soluzioni no. Sto usando Mint 17.1. Ho dovuto installare Tomcat sia tramite Eclipse che tramite apt-get perché non riuscivo a trovare la cartella in cui apt-get lo installava. Quindi è presumibilmente il motivo per cui ne ho due. Tuttavia non sono riuscito a chiudere il primo con i comandi kill.
Deleet,

12

Se dice Eclipse

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

Questo errore si verifica perché Tomcat potrebbe essere in esecuzione in background, quindi prima arrestare quel server ... seguire i dettagli di seguito.

La soluzione è:

  1. Apri la vista "console" (finestra-> mostra vista-> Console)
  2. Quindi arrestare il server Tomcat.
  3. Quindi aprire la vista "server" e avviare il server funzionerà.

Grazie!


Questo ha funzionato per me. Ho solo provato: sudo service tomcat stop
Emiliano Sangoi,

10

Non ho un'altra istanza di Tomcat in esecuzione e nessun altro processo che utilizza "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 dovrai interrompere l'altro processo o modificare il numero (i) dei port.

Risolvo il problema in questo modo:

  • vai al cestino di Tomcat dal prompt
  • avvia startup.bat
  • avvia shutdown.bat
  • avvia tomcat da Eclipse

1
Il mio problema era che le porte 8005 e 8009 erano occupate, tuttavia la porta 8080 era libera e nessuna installazione di Tomcat era in esecuzione in quel momento. La tua soluzione mi ha aiutato a risolvere questo problema, grazie.
Benas,

7

Quello che ho fatto dopo aver letto tutte le risposte suggerite e come so la mia porta era già in uso. Ho fatto doppio clic su Tomcat nella scheda Server in Eclipse e ha aperto le informazioni generali e quindi ho trovato le informazioni sulla porta. Ho appena cambiato la porta in conflitto poiché la mia era la porta 8009 (errore menzionato durante l'avvio del server). L'ho cambiato in 8008 e funziona benissimo. Provare se la porta modificata non sarebbe in uso, verrà avviato il server.


6

Passaggio 1: netstat -a -o -n e verrà visualizzato un elenco di reti, cercare l'indirizzo locale come 127.0.0.1:8080 e annotare il PID (eq 3624)

C:\>netstat -a -o -n

Step2: taskkill / F / PID 3624 . Esegui questo comando per terminare quel processo.

C:\>taskkill /F /PID 3624

link per pubblicare


Vedere la mia nuova risposta in cui includo uno script PowerShell per automatizzare queste due righe.
Xharlie,

5

Su Windows usa il comando per arrestare l'istanza tomcat già in esecuzione e provare a eseguirla nuovamente in Eclipse, potrebbe funzionare.

net stop tomcat7 

In alternativa, è possibile modificare la porta nell'XML del server se si desidera eseguire solo su altre porte.


4

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 eliminare quella porta, procedi come segue:

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

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

2) Estrarre la cartella e avviare l' applicazione TCPView .

3) Fare clic con il tasto destro 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 bene senza problemi.


2

Se ti trovi in ​​Java EE in prospettiva in Eclipse e stai provando ad avviare Tomcat Server in Eclipse in modalità debug, otterrai tali errori. È necessario passare al potenziale debug in Eclipse. Ho risolto il mio problema in questo modo.


2

A volte se le porte non vengono liberate anche dopo aver tentato lo spegnimento.bat ciò che ha suggerito @BalusC, è possibile interrompere il processo javaw. Procedi come segue:

  1. Fai clic sul menu Start e apri "Windows PowerShell"
  2. Fai clic destro prima di aprire e seleziona "Esegui come amministratore"
  3. Immettere il comando ps. Puoi vedere un'immagine come segue: Powershell mostra i processi correnti in esecuzione

  4. Vedere il numero di processo del processo "javaw". Il numero di processo è il numero più a destra nelle colonne, ad esempio ho evidenziato nel numero di processo dell'immagine di javaw.

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


1
Si prega di vedere la mia nuova risposta in cui includo uno script di PowerShell per automatizzare questo.
Xharlie,

2

Ecco un'altra opzione da provare se nessuno degli sforzi di cui sopra ha aiutato. È possibile che si stia utilizzando Eclipse da un'unità condivisa (ad esempio, H :) . In tal caso, spostalo / copia l'intera directory di Eclipse in C: e riprova.

My Eclipse non ha potuto aprire le porte per il server Tomcat (con l'errore sopra riportato), né connettersi a Internet. Ho anche provato un altro plugin 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 -anoverificare se altri processi utilizzano le porte in conflitto.
  • Trova il PID e uccidilo
  • Prova a riavviare il server.

Cambia le porte Tomcat 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).

Uccidi java.exe e javaw

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


2

Per gli utenti di Windows:

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

Uccidi i processi "java.exe" facendo clic con il pulsante destro del mouse e selezionando "Termina operazione".


2

Ho controllato tutte le risposte ma 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 i permessi per uccidere il PID .

In questo caso, ciò che puoi fare è:

Double click on server

Go to Overview and change ports in Ports come questo:

inserisci qui la descrizione dell'immagine


1

La soluzione più semplice che funziona per me sta eliminando le mie attuali webapp distribuite da Tomcat attraverso la scheda "Server". Una volta rimossi, il problema scompare. Basta ridistribuire il progetto andando su Esegui come> Esegui sul server.


1

Il problema si presenta spesso quando Apache Tomcat non riesce a terminare correttamente, anche se è stata inviata un'istruzione di spegnimento. Nel mio caso, usando Tomcat 8, questo accade con fastidiosa regolarità. Fortunatamente, puoi usare Windows PowerShell enetstat comando per creare un semplice script per terminare il processo.

Il seguente script di PowerShell analizzerà l'output netstatper trovare qualsiasi processo in ascolto 127.0.0.1:8005, estrarre il suo PID e quindi terminare quel processo:

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 si server.xmlconfigura Tomcat per utilizzare una porta o un IP diverso, modificare di conseguenza l'espressione regolare sulla quarta riga dello script.

Infine, dovrei sottolineare che la situazione è migliore su Linux perché puoi istruire Tomcat a salvare il suo PID in un file al momento dell'avvio e utilizzare un interruttore per forzare l'arresto, in seguito - lo script di arresto per i sistemi 'nix presenta già il netstatnon è richiesta la capacità di uccidere il processo e il lavoro degli investigatori .


1

Se il problema precedente si verifica nel sistema operativo basato su Windows 7 o 10, il problema si verifica perché Tomcat è in esecuzione come servizio di Windows. Per interrompere l'esecuzione di Tomcat come Servizi di Windows, Apri 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: \ utenti \ nomeutente> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 ASCOLTO 2160.
  3. Il 2160 sopra è l'id del processo in esecuzione sulla porta 8080 e termina quel processo usando il seguente comando
    C: \ utenti \ nomeutente> taskkill / F / PID 2160
  4. Vai su IDE e avvia Server, funzionerà

1

Potrebbe essere perché non stai arrestando correttamente il tuo servizio Tomcat. Per fare ciò, Apri il tuo task manager lì per vedere un javaw.exeservizio. Per prima cosa smetti di quel servizio. Ora riavvia Tomcat funziona correttamente.


1

Nel mio caso, mi stava dando l'errore: la porta 8005 richiesta dal server Tomcat v8.0 su localhost è già in uso

Ho cambiato la porta 8005 in apache-tomcat-8.0.39 \ conf \ server.xml ma le modifiche non venivano riflesse. Poi ho fatto queste modifiche da eclissi. facendo doppio clic sul server e modificando la porta da 8005 a 8006 e funziona. inserisci qui la descrizione dell'immagine

Prima di mettere 8006 ho controllato nella shell di Windows se questa porta è disponibile o meno. Eseguendo il seguente comando:

netstat -a -o -n | findstr 8006

1

Devo affrontare lo stesso problema e dopo aver cercato la risposta come mostrato di seguito: 1. apri Monitor Tomcat come mostrato di seguito: inserisci qui la descrizione dell'immagine

  1. Basta premere stop come mostrato nell'immagine seguente:

inserisci qui la descrizione dell'immagine

Finalmente funziona con me dopo molte prove e soluzioni suggerite.

Cordiali saluti, Kerelos Mikhail


0

Su Eclipse fai una cancellazione grezza della cartella di configurazione Tomcat sotto il progetto "Server". L'ho provato come ultima speranza e ha funzionato.


0

Nel caso di Windows, ho sperimentato una nuova roba ... l'arresto di 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 .. mi consente di eseguire.

Non sono sicuro che la mia comprensione sia corretta!


0

Fare riferimento al seguente blog "come uccidere Tomcat senza riavviare il computer"

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

Spero che questo possa aiutare qualcuno in futuro.


1
Il link sopra è morto. Questo indica il buon articolo del blog: stanicblog.blogspot.fr/2012/01/…
dounyy,

Si prega di non aggiungere collegamenti da leggere senza menzionare la parte importante. Perché le persone sono qui ottenere risposte.
Menuka Ishan,

0

Si verifica quando anche altri utenti del progetto utilizzano gli stessi numeri di porta utilizzati! fare doppio clic sul server Tomcat, modificare i numeri di porta su 8585 o altro. Il codice ora inizierà a funzionare!


0

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 i PID di queste porte sono 5760.
  3. Ora digita 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 tramite Eclipse stesso.

Grazie

uccidere un servizio Windows bloccato all'arresto o all'avvio


0

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

Per verificare se un'altra istanza di Tomcat è già in esecuzione o un altro processo utilizza le porte, è possibile utilizzare:

netstat -b -anel prompt dei comandi per Windows. Questo elenca le porte in uso e ti dà l'eseguibile che sta usando ognuna. È necessario essere nel gruppo admin per farlo.

Potresti ottenere qualcosa del genere:

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]

Apri Task Manager Ctrl+ Shift+ Esce uccidi Tomcat7.exeo qualsiasi altro processo usando queste porte.


Si prega di vedere la mia nuova risposta in cui includo uno script di PowerShell per automatizzare questo.
Xharlie

0

Probabilmente 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.