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.