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)