La dernière version actuellement publiée (au 13/12/2016) est Spring Boot 1.4.2.RELEASE, et la valeur par défaut est 8.5.6 pour Tomcat. Vous pouvez facilement changer la version de Tomcat en créant un projet via SPRING INITIALIZR.
Si vous utilisez Maven comme outil de construction, spécifiez simplement la version dans les propriétés comme indiqué ci-dessous.
<properties>
<!-- ... -->
<tomcat.version>8.5.8</tomcat.version>
</properties>
Pour le moment ... Tomcat ne commencera pas à utiliser le numéro de port par défaut (8080): scream:
Le contenu de l'erreur est "Adresse déjà utilisée". Dans un sens, c'est une erreur courante que vous pouvez rencontrer lorsque vous touchez plusieurs applications Spring Boot en même temps et qu'elles sont toujours en cours d'exécution.
...
2016-12-11 03:12:06.364 ERROR 20786 --- [ main] o.a.coyote.http11.Http11NioProtocol : Failed to start end point associated with ProtocolHandler [http-nio-8080]
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_102]
at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_102]
...
Mais cette fois, une autre application ne fonctionne pas, et il n'y a pas de processus zombie ...
Je n'entrerai pas dans les détails, mais lorsque j'utilise le Tomcat 8.5.8 intégré sur Spring Boot, c'est parce que j'ai involontairement créé deux Connector
s pour Tomcat. Par défaut, les deux utilisent le port 8080, donc "Adresse déjà utilisée" apparaît ...
Essayez de changer le numéro de port du serveur en 18080 à l'aide des propriétés Spring Boot ...
server.port=18080
Le journal suivant sera généré et le serveur démarrera.
...
2016-12-11 03:15:39.717 INFO 20842 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 18080 (http)
2016-12-11 03:15:39.721 INFO 20842 --- [ main] com.example.Tomcat858DemoApplication : Started Tomcat858DemoApplication in 2.639 seconds (JVM running for 3.076)
Cela démarre, mais ... 8080 (Connecteur fabriqué par Tomcat) et 18080 (Connecteur fabriqué par Spring Boot) ont démarré Tomcat en attente d'une requête: fatigue_face:
Andy Wilkinson du Core Committer de Spring Boot, un membre du projet Spring Project, a signalé un bug! !!
Le contenu est le même que celui présenté ici, mais comme le problème est posé du côté de Spring Boot, je publierai un lien.
Eh bien, je pense qu'il est préférable d'utiliser Tomcat 8.5.6 docilement. Si, pour une raison quelconque, vous devez utiliser une version supérieure au lieu de 8.5.6 ... essayez 8.5.9. Pour le moment, ça a commencé: sweat_smile: Je n'ai pas vu la cause, mais quand je l'ai élevé à 8.5.9 et que je l'ai rendu public, une erreur s'est produite dans le test Spring Boot, donc même avec 8.5.9, il se peut que certaines choses ne se passent pas bien lorsqu'elles sont combinées avec Spring Boot. Hmm.
Sauf si vous avez une raison spécifique, utilisez simplement Tomcat, dont dépend votre Spring Boot. À tout le moins, il doit s'agir d'une version éprouvée qui a été utilisée dans les versions précédentes de Spring Boot ... Vous devez être conscient que vous courez un risque accru de dysfonctionnements fatals.
Recommended Posts