2011-11-07 36 views
26

La configuración es:Tomcat arranque, 8080 dirección ya en uso

  • Amazon EC2
  • Tomcat (con el reenvío seguro a 8443)
  • Apache 2,2

corro el cierre. sh, y no recibo errores.

pero cuando intento a la Runt startup.sh consigo este error: comandos

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 

que he probado como netstat -aon | grep 8080 he intentado ps -efl | grep java y matar a ese proceso mediante kill <pid> 9pkill 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 

Cualquier pensamiento o punteros?

Respuesta

9

El número de puerto se configura en $ TOMCAT_HOME/conf/server.xml

Si el puerto 8080 está en uso, cambiarlo en el archivo server.xml. La mía es la siguiente con server.xml

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

Probado cambiándolo a 8181 8383 ... no hay efecto! Esto parece una solución alternativa, lo que estoy buscando hacer es ejecutar en 8080 pase lo que pase. ¡El problema ni siquiera se resuelve con un reinicio! – marko

15

NUNCA matar a un proceso con señal de -9, porque este tipo de proceso de matar deja sus recursos presentes en el sistema, que sólo puede ser removido después de un reinicio del 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 de lsof command y grep it with tomcat. se le mostrará todo lo que ha Tomcat asociada a ella

lsof | grep tomcat

  • búsqueda de cualquier archivo de bloqueo pid en el sistema de archivos, dada por Tomcat.
  • Además, trate de emisión:

lsof -i TCP | grep 8080

+0

Intenté reiniciar, el problema no se resolvió. Leí sobre este problema, es como dijiste: recursos presentes en la memoria. ¿Pero cómo sobreviven a un rebote? : S – marko

+0

intente ejecutar ps -aux | grep java, y busca cualquier proceso de java que se ejecute al inicio. – Farhan

+0

gracias por las sugerencias, he intentado ps-efl | grep java (y otra combinación similar) observando que funcionó. Eventualmente terminé mi instancia de Amazon y creé una nueva ... – marko

1

veces servlets deben hacer una cantidad sustancial de trabajo a cerrar, y como resultado, Tomcat puede tomar algún tiempo para el apagado 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 abreviar, intente agregar un sueño a su secuencia de comandos de reinicio, o simplemente espere un poco antes de volver a llamar.

9

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

sudo lsof -i :8080 

y luego se puede matar a cualquier proceso que está llevando a cabo el puerto (muy probablemente otra instancia de Tomcat).

24

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ó algún proceso obsoleto ejecutándose. Lo maté usando (-15 en lugar de -9)

sudo kill -15 <tomcat pid from previous command> 

¡Y woot! funcionó. Reinició tomcat sin ningún problema.

+0

Esto me ayudó ... Gracias – ashu17188

1

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.

+0

Intenté de esa manera cuando se publicó la pregunta, tuve el mismo problema – marko

4

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

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

2

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á.

0

ps -awwef | grep Tomcat

trabajó para mí

encontró algunos procesos en ejecución rancio. He matado utilizando (en lugar de -15 -9)

0

La mejor solución es dejar de correr instancia de Tomcat con el siguiente comando:

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

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

2

También he encontrado 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.

0

Estaba enfrentando un problema similar y descubrí que el puerto 8080 se estaba utilizando para 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. Puede encontrar este archivo en el 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.

Cuestiones relacionadas