Comment résoudre java.net.BindException: Adresse déjà en cours d'utilisation
Je suis en train de mettre en place un tomcat 8 server sur un ubuntu 14 par l'intermédiaire de digital de l'océan avec ce tutoriel https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-14-04. Mais je ne peux pas atteindre la page d'accueil de tomcat.
Tout va bien jusqu'à ce que j'arrive à l'étape de démarrage de tomcat avec
sudo initctl démarrer tomcat
Il renvoie un message d'
tomcat start/en cours d'exécution, le processus de 9180
Mais quand je tape dans l'url
mon-gouttelettes-adresse-ip:8080
la splash page ne se charge jamais.
J'ai lu que vous pouvez démarrer tomcat avec
sh startup.sh
Bien que quand je fais cela catalina.donne moi le message d'erreur
31-Jul-2016 05:37:41.018 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
31-Jul-2016 05:37:41.086 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-8080"]
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:229)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:558)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1010)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)
31-Jul-2016 05:37:41.089 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:111)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1012)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 12 more
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:229)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:558)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1010)
... 13 more
31-Jul-2016 05:37:41.091 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8181"]
31-Jul-2016 05:37:41.105 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
31-Jul-2016 05:37:41.117 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1568 ms
31-Jul-2016 05:37:41.180 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
31-Jul-2016 05:37:41.180 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.4
31-Jul-2016 05:37:41.211 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/tomcat/webapps/host-manager
J'ai vérifié pour voir quels ports sont utilisés avec sudo lsof-i, et a essayé de tuer les processus qui sont à l'aide de ports que tomcat besoins, ainsi que l'évolution des différents ports server.xml afin d'éviter cette erreur. Mais il garde survenant peu importe ce que je fais.
J'ai aussi vu récemment ce lien
qui suggère
C'est peut-être due à une entropie de la source du problème. Définissez l'option
-Djava.de sécurité.egd=file:/dev/./urandom soit dans catalina.sh ou /etc/default/tomcat .
Le problème c'est que je ne trouve pas le fichier /etc/default/tomcat, ni puis-je savoir où en catalina.sh ajouter cette ligne que l'auteur propose.
Pourquoi je ne peux pas démarrer tomcat pour se rendre à la page d'accueil? Est-ce vraiment un problème lié à l'entroy source? Si oui, où en catalina.sh cette ligne aller? Si non, toute suggestsion de comment je peux résoudre ce problème serait appréciée.
- Je pense que le problème est que lorsque vous essayez de démarrer tomcat à l'aide
sh startup.sh
vous ne pouvez pas parce que l'instance a commencé comme un service est déjà en utilisant les ports. Vous pouvez utiliser lenetstat
de commande pour voir quels ports sont utilisés et par quels processus. - adresse à utiliser des moyens d'une autre application est l'aide de l'adresse de port vous essayez de démarrer tomcat avec, c'est soit que @Titus dire, ou c'est l'autre app
Vous devez vous connecter pour publier un commentaire.
Comme vous le savez déjà la cause de ce problème, c'est que votre demande d'essayer de se connecter à un port particulier qui est déjà en cours d'utilisation par un autre processus de Java ou de non-Java.
ici votre réponse:
trouver ces quatre ports dans votre server.xml
utiliser la commande netstat pour trouver le processus qui est à l'aide de ces ports.
Maintenant, puisque vous avez trouvé processus fautif, vous pouvez tuer les processus et redémarrez le vôtre si tuer le processus est OK, sinon, changer le port dans votre server.xml
le faire pour tous les 4 ports, et redémarrez tomcat. vérifier catalina.hors, si tout va bien, vous serez en mesure d'accéder à votre demande.
Je ne sais pas si c'est lié à entroy source ou pas, mais vous pouvez placer
-Djava.security.egd=file:/dev/./urandom
en catalina.sh. trouverJAVA_OPTS
dans catalina.sh et l'a mis là séparés par un point-virgule(;) avec les valeurs existantes.Si yo utilisez Eclips IDE laissez-moi savoir. de son tous les de choses simples.
espérons qu'il allait les aider.