2012-09-18 7 views
22

he hecho los siguientes ajustes para ejecutar un proyecto web Java, pero de alguna manera mi Tomcat no parte de Eclipse:Tomcat no empezar (devolver java.net.BindException:)

JAVA_HOME : C:\Program Files\Java\jdk1.6.0_03 
PATH : C:\Program Files\Java\jdk1.6.0_03\bin 
CATALINA_HOME : D:\javaworkspaces\apache-tomcat-7.0.27 

Entonces, como se requiere, lo configurar un nuevo servidor desde Eclipse y dar la ruta de instalación de Tomcat.

Como se recomienda en algunos foros, he agregado tomcat-juli.jar a la ruta de la clase.
A pesar de todo esto, cuando trato de iniciar el Servidor Tomcat, aparece el error como Tomcat sin mirar en 45 segundos.

me sale el siguiente mensaje de registro:

Jul 26, 2012 5:49:34 PM 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: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_03\bin;D:\eclipse-jee-indigo-SR2-win32\eclipse;;. 
Jul 26, 2012 5:49:34 PM org.apache.tomcat.util.digester.SetPropertiesRule 
begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property   'source' to 'org.eclipse.jst.j2ee.server:JEE_Day01' did not find a matching property. 
Jul 26, 2012 5:49:34 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-80"] 
Jul 26, 2012 5:49:35 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Jul 26, 2012 5:49:35 PM org.apache.coyote.AbstractProtocol init 
SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] 
java.net.BindException: Address already in use: JVM_Bind <null>:8009 
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) 
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:566) 
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:417) 
at org.apache.catalina.connector.Connector.initInternal(Connector.java:956) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:624) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:649) 
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.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449) 
Caused by: java.net.BindException: Address already in use: JVM_Bind 
at java.net.PlainSocketImpl.socketBind(Native Method) 
at java.net.PlainSocketImpl.bind(Unknown Source) 
at java.net.ServerSocket.bind(Unknown Source) 
at java.net.ServerSocket.<init>(Unknown Source) 
at java.net.ServerSocket.<init>(Unknown Source) 
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:380) 
... 16 more 
Jul 26, 2012 5:49:35 PM org.apache.catalina.core.StandardService initInternal  
    SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]] 
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]] 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:624) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:649) 
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.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449) 
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed 
at org.apache.catalina.connector.Connector.initInternal(Connector.java:958) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
... 12 more 

me he referido múltiples foros, pero estoy mal pegado con la situación. Por favor guíame.

Respuesta

22

estas líneas:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] 
java.net.BindException: Address already in use: JVM_Bind <null>:8009 

implicar que ya hay un servicio ejecutándose en el puerto 8009. ¿hay un tomcat (con ajp) funcionando?

si el servicio se ejecuta en 8009 se necesita poder cambiar la configuración del conector de server.xml a algo así como a continuación:

<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" /> 
+0

thanx ..it funcionó – user1649415

10

Se dice que el número de puerto 8009 ya está ocupado por algún otro proceso que se ejecuta en el sistema operativo try searching for that process and stop it o hacer su gato para funcionar en el puerto diferente (gratis)

+0

thanx a ton..alto funciona – user1649415

5

java.net.BindException: Dirección ya en uso: JVM_Bind: 8009

Esto significa que algún otro proceso ya está utilizando este puerto. ¿Podría ser otra instancia de Tomcat?

0

Probar: http: // localhost: 8089 si no se trabaja (o) Prueba esto: Set: JRE_HOME: C: \ Archivos de programa \ Java \ jre1.5.0_11 (dependerá de la versión de JRE) y agregue C: \ Program Files \ Java \ jre1.5.0_11 (dependa de su versión de JRE) \ bin a la ruta Eclipse-> vaya a las preferencias de windows: server-> RuntimeEnvironment elimine el Servidor agregado y vuelva a ingresar y agregue el nuevo TomcatServer

0

TIL: Alguien más en un servidor puede iniciar IIS en el puerto 80 y no decirle a nadie.
Si tiene su Tomcat configurado para el mismo puerto, también informará este error.
El puerto en IIS o tomcat deberá cambiarse.

Para modificar el puerto en IIS:
Herramientas administrativas | Administrador de servicios de información de Internet (IIS)
Haga clic derecho en el sitio web predeterminado | Modificar enlaces ... Cambiar puerto

-O-

Para modificar el puerto de Tomcat:
abierto conf \ servidor.xml y actualizar el valor del puerto en la etiqueta:

<Connector port="80" protocol="HTTP/1.1" 
    connectionTimeout="20000" 
    redirectPort="8443" 
    URIEncoding="UTF-8"/> 

Reinicie Tomcat

disfrutar de 2 servicios web.

6

matar el proceso respectivo (escuchar) en este puerto es decir, 8009. uso

netstat -a -o -n

a buscar el PID del proceso. Puede parecerse a esto TCP [::]: 8009 [::]: 0 LISTENING 892

utilice el comando taskkill para matar el proceso. ejemplo:

taskkill /F /PID 892

+0

para matar el proceso, es posible que necesite derechos de administrador. Para hacerlo, busque "cmd" en el cuadro de búsqueda de inicio de Windows, haga clic derecho en "cmd.exe" y seleccione "abrir como administrador" –

0

Algo más está utilizando el puerto 8009.

De cualquier cerró la cosa que está utilizando 8009 o cambiar su server.xml para usar otro puerto de 8009

0

Esto generalmente ocurre si el puerto Connector/shutdown del tomcat ya se está utilizando. En primer lugar, ejecute el shutdown.bat (A veces echamos de menos que una instancia del Tomcat ya se está ejecutando) A continuación, en el comando de marcha rápida

netstat -aon | findstr 0.0:<your port number which is giving bind exception> 

Para obtener el PID de la aplicación que está usando actualmente su Puerto. Cualquiera de matar a esa aplicación o utilizar algún otro puerto que no aparece cuando se ejecuta

netstat -a -o -n 
2

Usted no debería tener que cambiar el server.port para solucionar este problema ...

Mac/Unix/Usuarios de Linux: Si después de reiniciar Tomcat, y este problema aún existe, es probable que se deba a que Tomcat se cerró incorrectamente y todavía hay recursos asociados que están bloqueados. Se puede ver los PID de los recursos mediante la ejecución de este comando:

lsof | grep tomcat 

Terminar los procesos usando:

kill -15 <PID> 

Esto debería solucionar su problema.

Usando el comando kill -15 a PLAZO (-15) el proceso en lugar de SIGKILL (-9) es preferible. El interruptor -15 envía al proceso la señal para comenzar sus fases de apagado y limpiar los recursos limitados.

Cuestiones relacionadas