Application Spring Boot en cours d'exécution sur le port 80
Je ne peux pas démarrer l'application sur le port 80.
j'ai essayé sur l'ordinateur local sur IDE et sur le serveur, pas de chance. J'ai vérifier l'autre des postes similaires et assurez-vous que je dirige pot sur le serveur avec la racine.
c'est l'erreur:
till here all ok
...
java.net.SocketException: Permission denied
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:338)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:760)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:472)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:186)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:149)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:288)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
at com.andirod.StartApplication.main(StartApplication.java:20)
...
...
...
Exception in thread "main" java.lang.IllegalStateException: Tomcat connector in failed state
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:157)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:288)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
at com.andirod.StartApplication.main(StartApplication.java:20)
source d'informationauteur 5er
Vous devez vous connecter pour publier un commentaire.
Sur linux, les ports inférieurs à 1024 peut être ouvert uniquement par la racine, de sorte que le port 80 est limité par défaut
si vous souhaitez publier votre application sur le port 80, vous devez demande de redirection du port 80 vers le port, vous allez exécuter votre springapp (e.g 8080) port
vous pouvez utiliser le serveur apache2 qui est autorisé par défaut pour fonctionner sur le port 80 et peut transmettre les demandes pour vous de tomcat
exemple de configuration pour debian
service apache2 restart
ou utiliser iptables pour les redirections
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
si vous avez besoin d'utiliser localhost également ajouter cette
iptables -t nat-I OUTPUT-p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
Juste rencontré ce problème. Je suis en cours d'exécution de Printemps de l'application de Démarrage sur un Ubuntu AWS instance.
java -jar app.jar --server.port=80
me donnera une erreur tout comme vous avez décrit. La solution, bien, depuis les ports inférieurs à 1024 peut être ouvert que par root, ajoutez "sudo".sudo java -jar app.jar --server.port=80
.Ce mode de déploiement est proposé uniquement pour les tests locaux en raison de problèmes de sécurité. Voir les commentaires pour plus de détails.
Ajouter
-Djava.net.preferIPv4Stack=true
à la VM optionsAPI JavaMail pour iMail -- java.net.Exception socketexception: Permission denied: se connecter