Várias portas (8005, 8080, 8009) exigidas pelo Tomcat Server no localhost já estão em uso

258

Estou recebendo o seguinte erro ao tentar executar um programa JSP simples no Tomcat no Eclipse.

Várias portas (8005, 8080, 8009) exigidas pelo Tomcat v6.0 Server no host local já estão em uso. O servidor já pode estar em execução em outro processo ou um processo do sistema pode estar usando a porta. Para iniciar este servidor, você precisará interromper o outro processo ou alterar o (s) número (s) da porta.

Como isso é causado e como posso resolvê-lo?

elle
fonte
Eu tive um problema semelhante que acabou por ser o firewall do Windows.
James Oravec 27/10/2015
Provavelmente algum processo de mortos-vivos está mantendo seu tomcat vivo. interrompa o processo localizando seu ID e encerrando-o ou reiniciando sua máquina.
Felipe Leão
você pode usar esses comandos para interromper os serviços do tomcat já em execução no console de comandos. netstat -ano | findStr 8080para encontrar os serviços em execução e, em seguida, encontrar o ID do processo e copiar o pid e execute o comando novamente comotaskkill /F /PID pid_number
Mdhar9e

Respostas:

473

Você já tem outra instância do Tomcat em execução. Você pode confirmar isso acessando http://localhost:8080o navegador da web e verificando se a página inicial padrão do Tomcat ou a página de erro 404 específica do Tomcat são exibidas. Ambos são evidências igualmente válidas de que o Tomcat funciona bem; caso contrário, você teria recebido uma mensagem de erro de tempo limite de conexão HTTP específica do navegador.

Você precisa desligá-lo. Vá para a /binsubpasta da pasta de instalação do Tomcat e execute o script shutdown.bat(Windows) ou shutdown.sh(Unix). Se for em vão, feche o Eclipse e abra o gerenciador de tarefas e elimine todos javae / ou javawprocessos.

Ou se você realmente o instalou como um serviço do Windows por algum motivo (isto é destinado à produção e é inútil quando você está apenas desenvolvendo), abra o gerenciador de serviços ( Iniciar> Executar> services.msc ) e pare o serviço Tomcat. Se necessário, desinstale o serviço do Windows completamente. Para o desenvolvimento, apenas o arquivo ZIP é suficiente.

Ou, se sua intenção real é executar duas instâncias do Tomcat simultaneamente, é necessário configurar a segunda instância para escutar em portas diferentes. Consulte a documentação do Tomcat para obter mais detalhes.

BalusC
fonte
1
perfeito, isso tem me atormentado para sempre. Eu o executei como sh shutdown.shno terminal dentro do diretório / bin.
Danny Englander
2
Olá BalusC, eu gosto de você! Não há shutdown.batna minha pasta bin. O Tomcat foi instalado como um serviço e não como um zip. A interrupção do serviço tomcat nos serviços corrigiu o problema. Obrigado. Chenqui.
precisa saber é o seguinte
1
@Borat: De nada. Lembre-se de que é melhor desinstalar o serviço e obter o zip.
BalusC
6
"matar todos os processos java e / ou javaw" funcionou para mim, obrigado.
Thariq Nugrohotomo
3
Abrir o system monitorou task managermatar um processo java que esteja usando about 400 MBou mais RAMtambém resolverá o problema. Sem querer, está reservando o processo.
viper
55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • não é necessário reiniciar o Eclipse
  • Se você receber o erro acima, basta digitar esta linha no terminal
  • inicie novamente o tomcat no Eclipse.
  • funciona apenas em sistemas baseados em Linux (Ubuntu ..etc)
Shan
fonte
6
Isso é melhorkill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay
Isso não funciona para mim (hortelã 17.1). Apenas me dá a ajuda para o killcomando.
Deleet
Isso funcionou para mim. No entanto, eu queria saber se tenho 2 instâncias em execução e preciso forçar a interrupção de uma usando esse método, como faço para descobrir qual desligar. Obrigado
Gautam
29

Se você estiver executando no Windows, tente isso no prompt da linha de comando:

netstat -ano

Isso mostrará todas as portas em uso e o ID do processo PID # do processo que está usando essa porta. Em seguida, Ctrl+ Alt+ Dele abra o Gerenciador de tarefas para ver qual processo é esse.

Você pode optar por fechá-lo / pará-lo ou configurar seu servidor para usar outra porta. Para verificar se a nova porta escolhida (digamos 8010) está disponível, faça o seguinte:

netstat -ano | grep 8010

Se não retornar nenhuma linha, você estará bem.

Para alterar a porta, vá para a visualização Servidor, abra server.xml e altere a porta. O meu tem esta entrada:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
Mau
fonte
Por favor, veja minha nova resposta, na qual incluo um script do PowerShell para automatizar isso sem a necessidade de abrir o Gerenciador de tarefas.
Xharlie 26/03/16
1
findstrpara aqueles sem grep.
Eckes
25

Se você estiver no ambiente Mac, aqui está o que eu fiz.

Encontre o ID do processo em execução nesta porta no terminal, por exemplo, 8080:

lsof -i :8080

e mate-o:

kill -9 <PID>  

Exemplo:

Você pode ver o seguinte resultado:

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 mate-o: ( kill -9 21347)

Eterno
fonte
20

Etapas para liberar a porta que já é usada para executar o servidor tomcat no Eclipse

Por exemplo, suponha que a porta 8080 seja usada, precisamos liberar 8080 para executar o tomcat

Passo 1:

C: \ Usuários \ nome de usuário> netstat -o -n -a | findstr 0.0: 8080

TCP 0.0.0.0:3000 0.0.0.0↓ LISTENING 3116

Agora, podemos ver que a porta LISTENING é 3116 para 8080,

Precisamos matar 3116 agora

Passo 2:-

C: \ Usuários \ nome de usuário> taskkill / F / PID 3116

Etapa 3: Vá para o Eclipse e inicie o Servidor, ele será executado

Sachindra N. Pandey
fonte
14

Se você usar o Eclipse, clique duas vezes nos servidores e clique duas vezes no servidor tomcat, e um arquivo será aberto. Nesse arquivo, altere a porta HTTP para outro número de porta e salve ( Ctrl+ S) e inicie novamente o servidor.

abc
fonte
Isso funcionou para mim, enquanto as outras soluções não. Estou usando o Mint 17.1. Eu tive que instalar o tomcat através do Eclipse e através do apt-get porque não consegui encontrar a pasta onde o apt-get o instalou. Então é presumivelmente por isso que tenho dois. Ainda não consegui fechar o primeiro com os comandos kill.
Deleet
12

Se o Eclipse disser

Várias portas (8005, 8080, 8009) exigidas pelo Tomcat v6.0 Server no localhost já estão em uso

Este erro ocorre porque o tomcat pode estar sendo executado em segundo plano; portanto, primeiro interrompa o servidor ... siga os detalhes abaixo.

A solução é:

  1. Abra a visualização "console" (janela-> mostrar visualização-> console)
  2. Em seguida, pare o servidor tomcat.
  3. Em seguida, abra a visualização "servidor" e inicie o servidor que irá funcionar.

Obrigado!

Ashu Phaugat
fonte
Isso funcionou para mim. Eu só tentei: sudo tomcat stop service
Emiliano Sangoi
10

Não tenho outra instância do Tomcat executando o anúncio e nenhum outro processo usando a "porta Tomcat" (no meu caso, a porta 8088). O Eclipse envia a mesma mensagem ao iniciar o Tomcat:

.... O servidor já pode estar em execução em outro processo ou um processo do sistema pode estar usando a porta. Para iniciar este servidor, você precisará interromper o outro processo ou alterar o (s) número (s) da porta.

Eu resolvo o problema desta maneira:

  • vá para o bin do tomcat por prompt
  • inicie startup.bat
  • iniciar shutdown.bat
  • start tomcat by Eclipse
giocorito
fonte
1
Meu problema era que as portas 8005 e 8009 estavam ocupadas, no entanto, a porta 8080 estava livre e nenhuma instalação do tomcat estava em execução naquele momento. Sua solução me ajudou a corrigir esse problema, obrigado.
Bev
7

O que fiz depois de ler todas as respostas sugeridas e como sei que minha porta já estava em uso. Cliquei duas vezes no Tomcat na guia Servidores no eclipse e ele abriu as informações da visão geral e, em seguida, localizou as informações da porta. Apenas alterei a porta conflitante, pois a minha era a porta 8009 (erro mencionado durante a inicialização do servidor). Eu mudei para 8008 e funciona bem. Faça uma tentativa se a porta alterada não estiver em uso, o servidor será iniciado.

DeVilCry2ME
fonte
6

Etapa 1: netstat -a -o -n e abrirá uma lista de redes, procure o endereço local como 127.0.0.1:8080 e observe o PID (eq 3624)

C:\>netstat -a -o -n

Etapa 2: skillkill / F / PID 3624 . Execute este comando para matar esse processo.

C:\>taskkill /F /PID 3624

link para postar

Sandeep Bhardwaj
fonte
Por favor, veja minha nova resposta na qual incluo um script do PowerShell para automatizar essas duas linhas.
Xharlie 26/03
5

No Windows, use o comando para parar a instância do tomcat já em execução e tente executá-la novamente no eclipse, pois pode funcionar.

net stop tomcat7 

Ou você pode alterar a porta no XML do servidor, se desejar apenas executar em outras portas.

Gauranga
fonte
4

Maneira fácil de resolver seu problema:

O servidor já pode estar em execução em outro processo ou um processo do sistema pode estar usando a porta. Para eliminar essa porta, faça o seguinte:

1) Faça o download do TCPView (apenas 285kb) no link a seguir.

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

2) Extraia a pasta e inicie o aplicativo TCPView .

3) Clique com o botão direito do mouse em java.exe (porque as portas 8009.8005 são comumente usadas pelo processo java) e selecione a opção Finalizar processo .

isso iria parar outro processo facilmente ..

NOTA : A execução do TOMCATPATH ​​/ bin / shutdown.bat pode não desligar o Tomcat quando ele contém alguns demônios ou threads não gerenciados. Nesses casos, o TCPView funciona bem sem problemas.

shivadarshan
fonte
2

Se você estiver no Java EE prospectivo no Eclipse e tentando iniciar o Tomcat Server no Eclipse no modo de depuração, receberá esses erros. Você deve mudar para o potencial de depuração no Eclipse. Eu resolvi meu problema assim.

Jitendra
fonte
2

Às vezes, se as portas não forem liberadas, mesmo após a tentativa de shutdown.bat, o que o @BalusC sugeriu, você pode matar o processo javaw. Execute as seguintes etapas:

  1. Clique no menu Iniciar e abra "Windows powershell"
  2. Clique com o botão direito do mouse antes de abrir e selecione "Executar como administrador"
  3. Digite o comando ps. Você pode ver uma imagem da seguinte maneira: PowerShell mostrando os processos atuais em execução

  4. Veja o número do processo "javaw". O número do processo é o número mais à direita nas colunas, destaquei na imagem número do processo da javaw, por exemplo.

  5. Digite o comando kill. javaw está morto e agora você deve poder executar o programa.

Jaguar minúsculo
fonte
1
Por favor, veja minha nova resposta na qual incluo um script do PowerShell para automatizar isso.
Xharlie 26/03
2

Aqui está mais uma opção para tentar se nenhum dos esforços acima ajudou. Você pode estar usando o Eclipse a partir de uma unidade compartilhada (por exemplo, H :) . Nesse caso, mova / copie o diretório inteiro do Eclipse para C: e tente novamente.

Meu Eclipse não pôde abrir portas para o servidor Tomcat (com o erro acima) nem se conectar à Internet. Também tentei outro plug-in do Tomcat (Sysdeo), que também não abriu as portas.

Estas são as opções que eu tentei:

Verificar e matar outras instâncias do Tomcat

  • No prompt de comando, netstat -anoverifique se outros processos estão usando as portas em conflito.
  • Encontre o PID e mate-o
  • Tente iniciar o servidor novamente.

Alterar portas do Tomcat no Eclipse

  • Na guia Servidor Eclipse, clique duas vezes na instância do Tomcat. Isso abrirá a guia de configuração.
  • Em Portas, altere os números da porta. (por exemplo, 18080).

Mate java.exe e javaw

Veja minha outra resposta para o Eclipse não se conectar à Internet ( https://stackoverflow.com/a/37246087/4212710 ).

typoerrpr
fonte
2

Para usuários do Windows:

Vá para o Gerenciador de tarefas diretamente com a combinação de teclas CTRL + SHIFT + ESC.

Mate os processos "java.exe" clicando com o botão direito do mouse e selecionando "Finalizar tarefa".

Arif Acar
fonte
2

Eu verifiquei todas as respostas, mas informing only to kill PID.

Caso o acesso ao terminal seja compartilhado por todos, isso não ajudará ou talvez você não tenha permissão para matar o PID .

Nesse caso, o que você pode fazer é:

Double click on server

Go to Overview and change ports in Ports como isso:

insira a descrição da imagem aqui

v8-E
fonte
1

A correção mais simples que funciona para mim é excluir meus aplicativos da Web atualmente implantados do tomcat através da guia "Servidor". Depois de removê-los, o problema desaparece. Simplesmente reimplante seu projeto, executando Executar como> Executar no servidor.

Felipe Leão
fonte
1

O problema geralmente surge quando o Apache Tomcat falha ao finalizar corretamente, mesmo que uma instrução de desligamento tenha sido enviada. No meu caso, usando o Tomcat 8, isso acontece com regularidade irritante. Felizmente, você pode usar o Windows PowerShell e onetstat comando para criar um script simples para interromper o processo.

O seguinte script do PowerShell irá analisar a saída netstatpara encontrar qualquer processo que esteja escutando 127.0.0.1:8005, extrair seu PID e depois matar esse 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 você server.xmlconfigurar o Tomcat para usar uma porta ou IP diferente, edite a expressão regular na quarta linha do script de acordo.

Por fim, devo salientar que a situação é melhor no Linux porque você pode instruir o Tomcat a salvar seu PID em um arquivo no momento da inicialização e usar uma opção para forçar o desligamento posteriormente - o script de desligamento dos sistemas 'nix já possui o a capacidade de matar o processo e o trabalho com o detetive netstatnão é necessária.

Xharlie
fonte
1

Se o problema acima ocorrer no sistema operacional Windows 7 ou 10, o problema ocorre porque o Tomcat está sendo executado como serviço do Windows. Para interromper a execução do Tomcat como Serviços do Windows, abra o Painel de Controle do Windows. Encontre o serviço "Apache Tomcat" e pare-o. A outra maneira é eliminar o processo em execução na porta 8080 usando o cmd.

Abra o cmd executando-o como administrador.

  1. C: \ users \ nome de usuário> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0↓ LISTENING 2160.
  3. O 2160 acima é o ID do processo em execução na porta 8080 e elimine esse processo usando o seguinte comando
    C: \ users \ nomedeusuário> taskkill / F / PID 2160
  4. Vá para o IDE e inicie o servidor, ele será executado
Shreeram Reddy
fonte
1

Pode ser porque você não está parando seu serviço tomcat corretamente. Para fazer isso, abra seu gerenciador de tarefas e você poderá ver um javaw.exeserviço. Primeiro pare esse serviço. Agora reinicie o seu tomcat, ele funciona bem.

Ram Thota
fonte
1

No meu caso, estava me dando o erro: A porta 8005 exigida pelo Tomcat v8.0 Server no localhost já está em uso

Alterei a porta 8005 no apache-tomcat-8.0.39 \ conf \ server.xml, mas as alterações não foram refletidas. Então eu fiz essas mudanças no eclipse. clicando duas vezes no servidor e modificando a porta de 8005 para 8006 e ele funciona. insira a descrição da imagem aqui

Antes de colocar o 8006, verifiquei no shell do Windows se essa porta está disponível ou não. Executando o seguinte comando:

netstat -a -o -n | findstr 8006
Tahir Akram
fonte
1

Eu enfrento o mesmo problema e depois de pesquisar a resposta, como mostrado abaixo: 1. abra o Monitor Tomcat, como mostrado abaixo: insira a descrição da imagem aqui

  1. Basta pressionar Parar, conforme mostrado na figura abaixo:

insira a descrição da imagem aqui

Finalmente, ele trabalha comigo depois de muitas tentativas e soluções sugeridas.

Atenciosamente, Kerelos Mikhail

Kerelos
fonte
0

No Eclipse, faça uma exclusão bruta da pasta de configuração do Tomcat no projeto "Servidores". Eu tentei como última esperança e funcionou.

giocorito
fonte
0

No caso do Windows, experimentei coisas novas ... parar a pasta tomcat da / bin imediatamente não libera a porta 8080. Demora de 5 a 10 minutos para liberar a porta. Após 10 minutos novamente, se eu tentar executar o meu projeto Executar-> Executar no servidor .. permite executar.

Não tenho certeza se meu entendimento está correto!

Laxman
fonte
0

Isso ocorre quando outras pessoas no projeto também estão usando os mesmos números de porta que você está usando! clique duas vezes no servidor tomcat, altere os números das portas para qualquer coisa 8585 ou o que for. O código começará a ser executado agora!

Shivendra
fonte
0

Como matar um serviço do Windows usando PID -

  1. abra o prompt de comando e digite netstat -ano
  2. encontre o PID das portas que estão sendo usadas, neste caso, será 8080, 8005,8009. Digamos que o PID dessas portas seja 5760.
  3. Agora digite taskkill /f /pid 5760
  4. fechará o PID e as portas estarão disponíveis para uso. Agora você pode iniciar o tomcat normalmente pelos serviços do Windows ou pelo próprio eclipse.

obrigado

matar um serviço do Windows que está parado ao parar ou iniciar

Pankaj Barnwal
fonte
0

Várias portas (8005, 8080, 8009) exigidas pelo Tomcat vX.X Server no host local já estão em uso

Para verificar se outra instância do Tomcat já está em execução ou algum outro processo está usando as portas, você pode usar:

netstat -b -ano prompt de comando do Windows. Isso lista as portas em uso e fornece o executável que está usando cada uma. Você precisa estar no grupo de administradores para fazer isso.

Você pode obter algo parecido com isto:

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]

Abra o gerenciador de tarefas Ctrl+ Shift+ Esce mate Tomcat7.exeou qualquer outro processo usando essas portas.

Zeeshan
fonte
Por favor, veja minha nova resposta na qual incluo um script do PowerShell para automatizar isso.
Xharlie 26/03/16
0

Seu Tomcat provavelmente já está em execução. É por isso que você recebeu um erro. Eu já tive o mesmo problema antes. Eu resolvi isso de maneira muito simples:

  1. Reinicie o seu computador
  2. Eclipse aberto
  3. Execute seu Tomcat

Isso é tudo.

Purgoufr
fonte