Tomcat ne démarre pas (lancer java.net.BindException:)

j'ai fait les réglages suivants pour exécuter un projet Web Java, mais mon Tomcat ne part pas d'Eclipse:

JAVA_HOME : C:Program FilesJavajdk1.6.0_03  
PATH : C:Program FilesJavajdk1.6.0_03bin  
CATALINA_HOME : D:javaworkspacesapache-tomcat-7.0.27  

alors comme demandé, j'ai configuré un nouveau serveur à partir D'Eclipse et j'ai donné le chemin D'installation Tomcat.

comme conseillé dans certains forums, j'ai ajouté tomcat-juli.jar au chemin de classe.

Malgré tout cela quand j'essaie de démarrer le serveur Tomcat, j'obtiens l'erreur que tomcat ne regarde pas dans 45 secondes.

, j'obtiens le message du journal suivant:

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 FilesJavajre6bin;C:WindowsSunJavabin;C:Windowssystem32;C:Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesTortoiseSVNbin;C:Program FilesJavajdk1.6.0_03bin;D:eclipse-jee-indigo-SR2-win32eclipse;;.  
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

j'ai fait référence à plusieurs forums mais je suis mal coincé avec la situation. Merci de me guider.

22
demandé sur Michael Myers 2012-09-18 20:22:58

9 réponses

ces lignes:

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

implique qu'il existe déjà un service sur le port 8009. est-il un tomcat (avec ajp) fonctionne déjà?

si le service tournant sur 8009 est nécessaire, vous pouvez changer la configuration du connecteur dans le serveur.xml à quelque chose comme ci-dessous:

<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" />
22
répondu olly_uk 2012-09-18 16:29:49

il est dit que le numéro de port 8009 est déjà occupé par un autre processus tournant sur votre système D'exploitation essayez de chercher ce processus et arrêtez-le ou faites tourner votre tomcat sur un autre (libre) port

10
répondu Jigar Joshi 2017-05-23 12:34:12

tuer le processus respectif (d'écoute) sur ce port i.e. 8009. use

netstat -a -o -n

pour rechercher le PID du processus. Il peut ressembler à quelque chose comme ceci TCP [::]:8009 [::]:0 ÉCOUTE 892

utilisez la commande taskkill pour tuer le processus. exemple:

taskkill /F /PID 892

6
répondu Sadique Khan 2014-05-13 07:28:32

java.net.BindException: adresse déjà utilisée: jvm_bind: 8009

Cela signifie qu'un autre processus l'utilise déjà ce port. Ça pourrait être une autre affaire Tomcat?

5
répondu Cratylus 2012-09-18 16:24:28

Vous ne devriez pas avoir à changer le serveur.port pour résoudre ce problème...

utilisateurs Mac/Unix/Linux : si après avoir redémarré Tomcat, et ce problème existe toujours, c'est probablement parce que Tomcat a été arrêté incorrectement et qu'il y a encore des ressources associées qui sont maintenant verrouillées. Vous pouvez voir les PIDs de ces ressources en exécutant cette commande:

lsof | grep tomcat

mettre fin à ces procédés utilisant:

kill -15 <PID>

ça devrait régler votre problème.

en utilisant la commande kill -15 à terme (-15) le processus plutôt que SIGKILL (-9) est préférable. Le commutateur -15 envoie au processus le signal pour commencer ses phases d'arrêt et nettoyer les ressources limitées.

2
répondu cosbor11 2016-01-20 07:37:09

Try :http://localhost:8089 si elle n'est pas travaillé (ou) Essayez ceci: Set:JRE_HOME : C:\Program fichiers\Java\jre1.5.0_11 (dépend de votre version de JRE) et ajouter le C:\Program fichiers\Java\jre1.5.0_11 (dépend de votre version de JRE)\bin vers le chemin Eclipse-> aller à préférences windows:serveur->RuntimeEnvironment supprimer ajouté Serveur et Referesh et d'ajouter de nouvelles TomcatServer

0
répondu BloodRed 2012-09-18 17:33:05

TIL: Quelqu'un d'autre sur un serveur peut démarrer IIS sur le port 80 et ne le dire à personne.

Si vous avez votre tomcat configuré pour le même port, il signalera également cette erreur.

Le port sur IIS ou tomcat devra être changé.

pour modifier le port dans IIS:

Outils administratifs / Internet Information Services (IIS) Manager

Clic droit sur le Site Web par défaut / Modifier Contraignant... Changement De Port

-OU-

pour modifier le port de Tomcat:

Ouvrir le serveur de conf\.xml et mettre à jour la valeur du port dans la balise:

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

Redémarrer Tomcat

profitez de 2 services web.

0
répondu BobTheShrew 2013-06-10 18:51:36

quelque chose d'autre utilise le port 8009.

soit arrêter la chose qui utilise 8009 ou changer votre serveur.xml pour utiliser un autre port que 8009

0
répondu vishal 2014-08-08 06:22:20

cela se produit généralement si le port connecteur / arrêt du tomcat est déjà utilisé. Tout d'abord, exécutez la mise à l'arrêt.bat (parfois on oublie qu'une instance du tomcat est déjà en cours d'exécution) Ensuite, dans l'invite de commande, Lancez

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

pour obtenir le PID de l'application qui utilise actuellement votre port. Soit tuer cette application ou utiliser un autre port qui n'est pas listé lorsque vous exécutez

netstat -a -o -n
0
répondu Sagar Mhatre 2015-10-15 08:26:24