password manager hardening consola application administracion tomcat amazon-ec2 lifecycleexception

hardening - tomcat manager url



Inicio de Tomcat, dirección 8080 ya en uso (12)

La configuración es:

  • Amazon EC2
  • Tomcat (con reenvío seguro a 8443)
  • Apache 2.2

Ejecuto el shutdown.sh, y no consigo errores.

PERO cuando intento enrutar el archivo startup.sh aparece este error:

07-Nov-2011 17:40:40 org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib 07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init SEVERE: Error initializing endpoint java.net.BindException: Address already in use <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) at org.apache.catalina.connector.Connector.initialize(Connector.java:1022) at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) at org.apache.catalina.startup.Catalina.load(Catalina.java:538) at org.apache.catalina.startup.Catalina.load(Catalina.java:562) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.net.BindException: Address already in use at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) at java.net.ServerSocket.bind(ServerSocket.java:336) at java.net.ServerSocket.<init>(ServerSocket.java:202) at java.net.ServerSocket.<init>(ServerSocket.java:158) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) ... 12 more 07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService initialize SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]] LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use <null>:8080 at org.apache.catalina.connector.Connector.initialize(Connector.java:1024) at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) at org.apache.catalina.startup.Catalina.load(Catalina.java:538) at org.apache.catalina.startup.Catalina.load(Catalina.java:562) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8443 07-Nov-2011 17:40:41 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 615 ms 07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService start INFO: Starting service Catalina 07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start INFO: Starting service Catalina 07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.33 07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor host-manager.xml 07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor manager.xml 07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive test.war log4j:WARN No appenders could be found for logger (StackTrace). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. log4j:ERROR Error initializing log4j: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) java.lang.UnsupportedClassVersionError: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at Config.class$(Config.groovy) at Config.$get$$class$grails$plugins$springsecurity$SecurityConfigType(Config.groovy) at Config.run(Config.groovy:116) 07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start SEVERE: Error listenerStart 07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start SEVERE: Context [/test] startup failed due to previous errors 07-Nov-2011 17:40:43 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/test] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive browser.war 07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory examples 07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory ROOT 07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory docs 07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start SEVERE: Error starting endpoint java.net.BindException: Address already in use <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565) at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203) at org.apache.catalina.connector.Connector.start(Connector.java:1095) at org.apache.catalina.core.StandardService.start(StandardService.java:540) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.net.BindException: Address already in use at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) at java.net.ServerSocket.bind(ServerSocket.java:336) at java.net.ServerSocket.<init>(ServerSocket.java:202) at java.net.ServerSocket.<init>(ServerSocket.java:158) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) ... 12 more 07-Nov-2011 17:40:43 org.apache.catalina.core.StandardService start SEVERE: Failed to start connector [Connector[HTTP/1.1-8080]] LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use <null>:8080 at org.apache.catalina.connector.Connector.start(Connector.java:1102) at org.apache.catalina.core.StandardService.start(StandardService.java:540) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8443 07-Nov-2011 17:40:43 org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 07-Nov-2011 17:40:43 org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/120 config=null 07-Nov-2011 17:40:43 org.apache.catalina.startup.Catalina start INFO: Server startup in 2286 ms 07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote HTTP/1.1 on http-8443 07-Nov-2011 17:42:15 org.apache.catalina.core.StandardService stop INFO: Stopping service Catalina 07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8080 07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8443

He intentado comandos como netstat -aon | grep 8080 netstat -aon | grep 8080 He intentado ps -efl | grep java ps -efl | grep java y matar a ese proceso usando kill <pid> 9 pkill java y así sucesivamente ...

Esto es lo que netstat -aon

Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State Timer tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN off (0.00/0/0) tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN off (0.00/0/0) tcp 0 0 10.226.122.156:22 109.58.56.15:49215 ESTABLISHED keepalive (5354.40/0/0) tcp 0 0 :::80 :::* LISTEN off (0.00/0/0) tcp 0 0 :::22 :::* LISTEN off (0.00/0/0) udp 0 0 0.0.0.0:68 0.0.0.0:* off (0.00/0/0) udp 0 0 10.226.122.156:123 0.0.0.0:* off (0.00/0/0) udp 0 0 127.0.0.1:123 0.0.0.0:* off (0.00/0/0) udp 0 0 0.0.0.0:123 0.0.0.0:* off (0.00/0/0) udp 0 0 ::1:123 :::* off (0.00/0/0) udp 0 0 fe80::1031:3cff:fe0:123 :::* off (0.00/0/0) udp 0 0 :::123 :::* off (0.00/0/0) Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 2337 @/tmp/fam-root- unix 2 [ ACC ] STREAM LISTENING 409 @/com/ubuntu/upstart unix 2 [ ] DGRAM 644 @/org/kernel/udev/udevd unix 8 [ ] DGRAM 1513 /dev/log unix 3 [ ] STREAM CONNECTED 38302 unix 3 [ ] STREAM CONNECTED 38301 unix 2 [ ] DGRAM 38297 unix 2 [ ] DGRAM 22149 unix 3 [ ] STREAM CONNECTED 2340 @/tmp/fam-root- unix 3 [ ] STREAM CONNECTED 2339 unix 2 [ ] DGRAM 1998 unix 2 [ ] DGRAM 1918 unix 2 [ ] DGRAM 1895 unix 2 [ ] DGRAM 1819 unix 3 [ ] DGRAM 648 unix 3 [ ] DGRAM 647

¿Alguna idea o punteros?


A veces, los servlets deben hacer una cantidad sustancial de trabajo para cerrar y, como resultado, Tomcat puede tardar un tiempo en apagarse también. Si espera un poco antes de reiniciar el servidor, puede ver que el problema desaparezca. Si no es así, entonces es posible que una aplicación web no responda a las señales de terminación de la JVM, en cuyo caso Tomcat puede no apagarse correctamente.

Para resumir, trate de agregar un sueño a su secuencia de comandos de reinicio, o simplemente espere un poco antes de volver a llamar.


Después de ingresar el netstat -aon encuentra el PID para el puerto 8080. A continuación, vaya al administrador de tareas y encuentre el nombre de la imagen para el PID en la pestaña de procesos. haga clic derecho en el Nombre de la imagen y haga clic en el proceso final. Ahora, si inicia el servidor, funcionará.


El número de puerto está configurado en $ TOMCAT_HOME / conf / server.xml

Si el puerto 8080 está en uso, cámbielo en el archivo server.xml. El mío se ve así en server.xml

<Connector port="8085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />


El problema es que Tomcat puede no apagarse correctamente. intente agregar un descanso a su secuencia de comandos de reinicio, o simplemente espere una breve menta antes de iniciar tomcat de nuevo.


Estaba enfrentando un problema similar y descubrí que el puerto 8080 estaba siendo utilizado para alguna otra aplicación. use netstat commnad en Windows y vea todos los puertos en uso.

cambie el puerto del conector en el archivo server.xml. puedes encontrar este archivo en tu directorio de instalación de tomcat en la carpeta conf . abra este archivo, el mío se veía como a continuación:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

cambie el valor del puerto a algún otro puerto preferiblemente en la serie 80. espero que funcione.


La mejor solución es dejar de ejecutar la instancia de tomcat con el siguiente comando:

kill $ (ps -aef | grep java | grep apache-tomcat-7.0.47 | awk ''{print $ 2}'')

Cambia 7.0.47 con tu versión de tomcat. Funciona bien y el número de puerto, es decir, 8080, se lanzará pronto.


NUNCA mate un proceso con la señal -9, porque este tipo de proceso de destrucción deja sus recursos presentes en el sistema, que solo se pueden eliminar después de reiniciar el servidor. solo use kill -9 solo en caso de emergencia extrema. es mejor utilizar kill -15, ya que puede tomar algo de tiempo para limpiar los recursos, pero siempre obtendría un enjuague adecuado de todo ese conjunto de recursos, que el proceso está consumiendo. así que lo más probable es que el gato no esté funcionando ya que dejó algunos de los recursos que quedan en la memoria. Por lo tanto, realice un reinicio o intente encontrar lo siguiente:

  • a través del comando lsof y grep it con tomcat. le mostrará todo lo que tiene asociado a Tomcat

lsof | grep tomcat

  • búsqueda de cualquier archivo pid lock en el sistema de archivos, dejado por tomcat.
  • También intenta emitir:

lsof -i TCP | grep 8080


Simplemente ejecutar un lsof puede no ser suficiente. Sugiero este comando:

sudo lsof -i :8080

Y luego puedes matar cualquier proceso que contenga el puerto (muy probablemente otra instancia de tomcat).


Solo para el registro: obtuve este error (como novato) porque comencé Apache antes de iniciar Tomcat.

Si detuve Apache, luego inicié Tomcat y luego comencé Apache, los errores desaparecieron.


También me encontré con este problema, pero en mi caso, he actualizado mi aplicación en mi servidor desde la aplicación en mi fuente local. He buscado ejecutando instancias de tomcat con diferentes métodos como se muestra arriba y los maté a todos, seguidos de ejecutarlo varias veces, pero sin uso.

La razón por la cual Tomcat no se apagaba o arrancaba correctamente era la versión JDK del origen de la aplicación: la he construido con JDK 1.8, pero en mi servidor había 1.7. Después de reconstruir mi aplicación con JDK 1.7, la tuve trabajando tanto en máquinas locales como en servidores. Espero, esta información también ayuda a alguien como yo.


También tuve el mismo problema. Intenté todas las opciones sugeridas en este hilo. Pero no ayudó. Entonces simplemente funcionó:

ps -awwef | grep tomcat

y encontré un proceso obsoleto en ejecución. Lo maté usando (-15 en lugar de -9)

sudo kill -15 <tomcat pid from previous command>

Y ¡qué pena! funcionó. Reinició tomcat sin ningún problema.


ps -awwef | grep tomcat

trabajó para mi

encontró algún proceso obsoleto funcionando. Lo maté usando (-15 en lugar de -9)