Varios puertos (8005, 8080, 8009) requeridos por el servidor Tomcat en localhost ya están en uso

Recibo el siguiente error cuando bash ejecutar un progtwig JSP simple en Tomcat en Eclipse.

Varios puertos (8005, 8080, 8009) requeridos por el servidor Tomcat v6.0 en localhost ya están en uso. Es posible que el servidor ya se esté ejecutando en otro proceso o que un proceso del sistema esté utilizando el puerto. Para iniciar este servidor, deberá detener el otro proceso o cambiar los números de puerto.

¿Cómo es esto causado y cómo puedo resolverlo?

Ya tienes otra instancia de Tomcat en ejecución. Puede confirmar esto yendo a http://localhost:8080 en su navegador web y verifique si obtiene la página de inicio predeterminada de Tomcat o una página de error 404 específica de Tomcat. Ambas son pruebas igualmente válidas de que Tomcat funciona bien; si no fuera así, habría obtenido un mensaje de error de tiempo de espera de conexión HTTP específico del navegador.

Tienes que apagarlo. Vaya a la subcarpeta /bin de la carpeta de instalación de Tomcat y ejecute el script shutdown.bat (Windows) o shutdown.sh (Unix). Si es en vano, cierre Eclipse y luego abra el administrador de tareas y javaw procesos de java y / o javaw .

O si realmente lo instaló como un servicio de Windows por alguna razón (esto es intencionado para la producción y no es útil cuando está en desarrollo), abra el administrador de servicios ( Inicio> Ejecutar> services.msc ) y detenga el servicio Tomcat. Si es necesario, desinstale el servicio de Windows por completo. Para el desarrollo, solo el archivo ZIP es suficiente.

O si su intención real es ejecutar dos instancias de Tomcat simultáneamente, entonces debe configurar la segunda instancia para escuchar en diferentes puertos. Consulte la documentación de Tomcat para más detalles.

 kill $(ps -aef | grep java | grep apache | awk '{print $2}') 
  • no es necesario reiniciar Eclipse
  • si obtiene el error anterior, solo ingrese esta línea en la terminal
  • de nuevo inicie el tomcat en Eclipse.
  • funciona solo en un sistema basado en Linux (Ubuntu ..etc)

Si está ejecutando Windows, intente esto en el indicador de línea de comando:

 netstat -ano 

Esto mostrará todos los puertos en uso y el Id. De proceso PID # del proceso que está usando ese puerto. Luego, presione Ctrl + Alt + Supr y abra el Administrador de tareas para ver qué proceso es ese.

A continuación, puede elegir cerrarlo / detenerlo o configurar su servidor para usar otro puerto. Para verificar si el nuevo puerto elegido (digamos 8010) está disponible, haga esto:

 netstat -ano | grep 8010 

Si no devuelve ninguna línea, entonces estás bien.

Para cambiar el puerto, vaya a la vista Servidor, abra server.xml y cambie el puerto allí. El mío tiene esta entrada:

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

Si estás en el entorno de Mac, esto es lo que hice.

Encuentre la identificación del proceso ejecutándose en este puerto desde la terminal, por ejemplo, 8080:

 lsof -i :8080 

y matarlo:

 kill -9  

Pasos para el puerto libre que ya se usa para ejecutar el servidor tomcat en Eclipse

Por ejemplo, supongamos que se usa el puerto 8080, necesitamos hacer 8080 gratis para ejecutar tomcat

Paso 1:

C: \ Users \ username> netstat -o -n -a | findstr 0.0: 8080

TCP 0.0.0.0:3000 0.0.0.0:03 ESCUCHAR 3116

Ahora, podemos ver que el puerto LISTENING es 3116 para 8080,

Tenemos que matar a 3116 ahora

Paso 2:-

C: \ Users \ username> taskkill / F / PID 3116

Paso 3: Ve a Eclipse y comienza el Servidor, se ejecutará

Si Eclipse dice

Varios puertos (8005, 8080, 8009) requeridos por Tomcat v6.0 Server en localhost ya están en uso

Este error viene porque Tomcat puede estar ejecutándose en segundo plano, así que primero pare ese servidor … siga los detalles a continuación.

La solución es:

  1. Abra la vista “consola” (ventana-> mostrar vista-> consola)
  2. Luego detenga el servidor Tomcat.
  3. Luego abra la vista “servidor” y encienda el servidor, funcionará.

¡Gracias!

Si usa Eclipse, haga doble clic en los servidores y haga doble clic en el servidor de tomcat; a continuación, se abrirá un archivo. En ese archivo, cambie el puerto HTTP a otro número de puerto y guárdelo ( Ctrl + S ) y luego inicie el servidor.

No tengo otra instancia de Tomcat ejecutándose y no hay otro proceso que use “Tomcat port” (en mi caso, el puerto 8088). Eclipse envía el mismo mensaje al iniciar Tomcat:

…. Es posible que el servidor ya se esté ejecutando en otro proceso o que un proceso del sistema esté utilizando el puerto. Para iniciar este servidor, deberá detener el otro proceso o cambiar los números de puerto.

Resuelvo el problema de esta manera:

  • ir a la papelera de Tomcat por aviso
  • lanzar startup.bat
  • lanzar shutdown.bat
  • inicia tomcat por Eclipse

Lo que hice después de leer toda la respuesta sugerida y como sé que mi puerto ya estaba en uso. Hice doble clic en Tomcat en la pestaña Servidores en eclipse y se abrió la información general y luego se encontró la información del puerto. Acabo de cambiar de puerto conflictivo ya que el mío era el puerto 8009 (error mencionado al iniciar el servidor). Lo cambié a 8008 y funciona bien. Pruébalo si el puerto cambiado no estaría en uso. El servidor se iniciará.

Paso 1: netstat -a -o -n y mostrará una lista de red, busque la dirección local como 127.0.0.1:8080 y anote el PID (eq 3624)

 C:\>netstat -a -o -n 

Paso 2: taskkill / F / PID 3624 . Ejecute este comando para matar ese proceso.

 C:\>taskkill /F /PID 3624 

enlace para publicar

En el comando de uso de Windows para detener la instancia de Tomcat que ya se está ejecutando e intentar ejecutarlo de nuevo en eclipse, puede funcionar.

 net stop tomcat7 

O puede cambiar el puerto en el XML del servidor si solo desea ejecutar en otros puertos.

Manera fácil de resolver su problema:

Es posible que el servidor ya se esté ejecutando en otro proceso o que un proceso del sistema esté utilizando el puerto. Para matar ese puerto, haz lo siguiente:

1) Descargue TCPView (solo 285kb) del siguiente enlace.

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

2) Extraiga la carpeta e inicie la aplicación TCPView .

3) Haga clic con el botón derecho en java.exe (porque los puertos 8009,8005 son comúnmente utilizados por el proceso java) y seleccione la opción Terminar proceso .

esto detendría fácilmente otro proceso …

NOTA : Ejecutar TOMCATPATH ​​/ bin / shutdown.bat no puede apagar Tomcat cuando contiene algunos subprocesos demonio o no administrados. En tales casos, TCPView funciona bien sin ningún problema.

Si está en Java EE prospectivo en Eclipse e intenta iniciar el Servidor Tomcat en Eclipse en modo de depuración, obtendrá esos errores. Debe cambiar a depurar prospectivo en Eclipse. He resuelto mi problema así.

A veces, si los puertos no se liberan incluso después de intentar shutdown.bat, lo que @BalusC sugirió, puede matar el proceso javaw. Haga los siguientes pasos:

  1. Haga clic en el Menú de Inicio y abra “Windows PowerShell”
  2. Haga clic derecho antes de abrir y seleccione “Ejecutar como administrador”
  3. Ingrese el comando ps. Puede ver una imagen de la siguiente manera: Powershell mostrando los procesos actuales corriendo

  4. Vea el número de proceso del proceso “javaw”. El número de proceso es el número más a la derecha en las columnas, lo he resaltado en el número de proceso de imagen de javaw, por ejemplo.

  5. Ingresa comando kill. javaw es asesinado y ahora debes poder ejecutar el progtwig.

Aquí hay una opción más para probar si ninguno de los esfuerzos anteriores ayudó. Es posible que esté utilizando Eclipse desde una unidad compartida (por ejemplo, H 🙂 . Si es así, muévala / cópiela a C en todo el directorio de Eclipse y vuelva a intentarlo.

Mi Eclipse no pudo abrir puertos para el servidor Tomcat (con el error anterior), ni siquiera conectarse a internet. También probé otro complemento de Tomcat (Sysdeo) que tampoco abrió los puertos.

Estas son las opciones que probé:

Verificar y matar otras instancias Tomcat

  • En el símbolo del sistema, netstat -ano y compruebe si otros procesos están utilizando los puertos en conflicto.
  • Encuentra el PID y mátalo
  • Intenta iniciar el servidor de nuevo.

Cambie los puertos Tomcat en Eclipse

  • En la pestaña Servidor Eclipse, haga doble clic en la instancia de Tomcat. Esto abrirá la pestaña de configuración.
  • En Puertos, cambie los números de puerto. (por ejemplo, 18080).

Mata a java.exe y javaw

Vea mi otra respuesta para que Eclipse no se conecte a Internet ( https://stackoverflow.com/a/37246087/4212710 ).

Para usuarios de Windows:

Vaya al Administrador de tareas directamente con la combinación de teclas CTRL + MAYÚS + ESC.

Elimina los procesos de “java.exe” haciendo clic con el botón derecho y seleccionando “Finalizar tarea”.

Revisé todas las respuestas pero informing only to kill PID .

En caso de que tenga acceso a un terminal compartido por todos , no lo ayudará o tal vez no tenga permiso para eliminar el PID .

En este caso, lo que puedes hacer es:

Double click on server

Go to Overview and change ports in Ports como este:

enter image description here

En Eclipse realice una eliminación sin formato de la carpeta de configuración de Tomcat en el proyecto “Servidores”. Lo intenté como la última esperanza y funcionó.

En el caso de las ventanas, experimenté algo nuevo … detener el tomcat de la carpeta / bin no liberará inmediatamente el puerto 8080. Se tarda unos 5-10 minutos en liberar el puerto. Después de 10 minutos nuevamente, si bash ejecutar mi proyecto Ejecutar-> Ejecutar en servidor … permite ejecutarlo.

¡No estoy seguro si mi entendimiento es correcto!

Consulte el siguiente blog “Cómo matar a Tomcat sin tener que reiniciar su computadora”

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

Espero que esto ayude a alguien en el futuro.

La solución más simple que funciona para mí es borrar mis webapps implementadas actuales de tomcat a través de la pestaña “Servidor”. Una vez que los elimino, el problema desaparece. Simplemente vuelva a implementar su proyecto yendo a Ejecutar como> Ejecutar en el servidor.

¡Ocurre cuando otros en el proyecto también usan los mismos números de puerto que usted está usando! haga doble clic en el servidor Tomcat, cambie los números de puerto a cualquier cosa 8585 o lo que sea. ¡El código ahora comenzará a correr!

El problema suele surgir cuando Apache Tomcat no finaliza, correctamente, aunque se envió una instrucción de apagado. En mi caso, usando Tomcat 8, esto sucede con una regularidad molesta. Afortunadamente, puede usar Windows PowerShell y el comando netstat para crear un script simple para matar el proceso.

La siguiente secuencia de comandos de PowerShell analizará la salida de netstat para encontrar cualquier proceso que esté escuchando en 127.0.0.1:8005 , extraer su PID y luego eliminar ese proceso:

 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] } 

Si su server.xml configura Tomcat para utilizar un puerto o IP diferente, edite la expresión regular en la cuarta línea del script en consecuencia.

Finalmente, debo señalar que la situación es mejor en Linux porque puede indicarle a Tomcat que guarde su PID en un archivo en el momento del inicio y use un interruptor para forzar el cierre, más tarde: el script de apagado para los sistemas ‘nix ya incluye el capacidad de matar el proceso y no se requiere el trabajo de detective con netstat .

Cómo matar un servicio de Windows usando PID –

  1. abra el símbolo del sistema y escriba netstat -ano
  2. encuentre el PID de los puertos que están en uso, en este caso, será 8080, 8005,8009. Digamos que el PID de estos puertos es 5760.
  3. Ahora escriba taskkill /f /pid 5760
  4. cerrará el PID y los puertos estarán disponibles para su uso. Ahora puede iniciar tomcat como normal por los servicios de Windows o por eclipse.

Gracias

matar a un servicio de Windows que se bloquea al detener o iniciar

Varios puertos (8005, 8080, 8009) requeridos por el servidor Tomcat vX.X en localhost ya están en uso

Para verificar si otra instancia de Tomcat ya está ejecutándose o algún otro proceso está utilizando los puertos que puede usar:

netstat -b -a en el símbolo del sistema para Windows. Esto enumera los puertos en uso y le proporciona el ejecutable que usa cada uno. Necesitas estar en el grupo de administración para hacer esto.

Puede obtener algo como esto:

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 el administrador de tareas Ctrl + Shift + Esc , y Tomcat7.exe o cualquier otro proceso utilizando estos puertos.

Tu Tomcat probablemente ya esté funcionando. Es por eso que tienes un error. He tenido el mismo problema antes. Lo resolví muy simple:

  1. Reinicia tu computadora
  2. Abrir Eclipse
  3. Ejecuta tu Tomcat

Eso es todo.

En Windows OS, haz clic con el botón derecho en la barra de tareas -> iniciar el administrador de tareas -> procesar, luego comprueba si java.exe o javaw se está ejecutando, haz clic en él y finaliza el proceso y luego reinicia tu servidor tom cat.

  1. algunas veces skype ocupará el puerto 80, en ese caso cambiará la configuración de skype y pondrá 81 para skype o cambiará la configuración de tomcat.

Si el problema anterior ocurre en Windows 7 o 10 OS basado, el problema ocurre porque Tomcat se está ejecutando como servicio de Windows. Para detener la ejecución de Tomcat como servicios de Windows, abra el Panel de control de Windows. Encuentra el servicio “Apache Tomcat” y detente. La Otra forma es matar el proceso que se ejecuta en el puerto 8080 usando cmd.

Abre cmd ejecutándolo como administrador.

  1. C: \ users \ username> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:09 ESCUCHAR 2160.
  3. El 2160 anterior es la identificación de proceso del proceso que se ejecuta en el puerto 8080 y elimina ese proceso con el siguiente comando
    C: \ users \ username> taskkill / F / PID 2160
  4. Ir a IDE e iniciar el Servidor, se ejecutará

Puede ser porque no está deteniendo su servicio de tomcat correctamente. Para hacer eso, abra su administrador de tareas allí puede ver un servicio javaw.exe . Primero pare ese servicio. Ahora reinicie su tomcat, funciona bien.