tomcat lifecycleexception

Error de inicio de Tomcat



lifecycleexception (4)

Debe iniciar tomcat en el puerto 80 como usuario raíz. Otro puerto no.

Recibo el siguiente error en el archivo de registro de Catalina al iniciar Tomcat en Windows:

Sep 3, 2010 3:22:53 PM org.apache.catalina.startup.Catalina start SEVERE: Catalina.start: LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket address (protocol/network address/port) is normally permitted. at org.apache.catalina.connector.Connector.start(Connector.java:1138) at org.apache.catalina.core.StandardService.start(StandardService.java:531) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Sep 3, 2010 3:22:53 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 67604 ms

Pero cuando cambié el número de puerto de 8080 a 9000 entonces no hubo ningún error, pero la solicitud a http: // localhost: 9000 / da el error 404 The requested resource (/) is not available .

¿Me estoy perdiendo de algo?


Otro proceso es usar ese puerto (probablemente otra instancia de Tomcat).

Si no desea utilizar otro puerto para su instancia de Tomcat real, debe eliminar ese proceso.

cmd

  • 1 línea

    for /f "tokens=5" %a in (''netstat -ao ^| findstr 0.0.8080'') do taskkill /pid %a

    o

  • 2 líneas

    • obtener PID

      netstat -ao | findstr 0.0:8080

      obtienes algo como esto:

      TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5180

      (el último valor es el PID - úselo en el siguiente comando)

    • proceso de matanza

      taskkill /pid <pid>


Una aplicación está usando el puerto 8080. Para saber cuál, use el siguiente comando en el indicador de DOS:

C:/>netstat -aon | findstr 0.0:8080

Luego tome el número en la última columna (esa es la identificación del proceso) y descubra cuál es el proceso en el administrador de tareas. Si nada sale del comando, entonces no tiene ninguna aplicación que use ese puerto.


C:/>netstat -aon | findstr 0.0:8080

Esto lo solucionó, simplemente borrando el proceso con esta identificación de los procesos y reiniciando TomCat.