Comment empêcher le printemps-boot configuration automatique pour le printemps-web?
Je suis en utilisant spring-boot
et a ajouté spring-web
dépendance en pom maven, à faire usage de RestTemplate
.
Maintenant printemps essaie d'initialiser un EmbeddedServletContext
. Comment puis-je l'empêcher?
Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:474)
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)
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:183)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:156)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130)
... 8 more
Vous devez vous connecter pour publier un commentaire.
De référence: Ce cas d'utilisation est documentée dans le Printemps De Démarrage Guide De Référence:
application.propriétés:
Première astuce:
Deuxième:
@EnableAutoConfiguration(exclude = WebMvcAutoConfiguration.class, EmbeddedServletContainerAutoConfiguration.class})
mais toujours la même erreur... Ce serait bien si la configuration automatique pourspring-web
peut être désactivé par l'annotation, sans avoir à modifier mon principal starter méthode...spring.main.web_environment=false
est mieux... Pas besoin de code Java 🙂Bien que l'héritage moyen de la désactivation de l'environnement web (comme mentionné dans @Tim réponse) fonctionne encore au Printemps de Démarrage 2.x, toutefois, le meilleur moyen est en définissant la propriété suivante
spring.main.web-application-type=none
Ici est l'enum qui définit les valeurs autorisées
spring.main.web-application-type
propriété bien (quand j'écris cela), même pas ce que les valeurs valides sont. Googler pourSpring WebApplicationType API
révèlent que les valeurs valides sontservlet
,reactive
etnone
(avec des cas comme ça, je suppose).Cela fonctionne au Printemps de Démarrage 2.x
J'étais en train de construire un Réactif Application Web avec Spring Boot 2.06 et eu cette erreur:
Ce lien explique le problème, et a offert deux suggestions:
Malheureusement, aucune de ces solutions n'a fonctionné pour moi. Au lieu de cela, j'ai adapté geoand de réponse, et a ajouté ça à mon
application.properties
:Le tour est joué! Problème résolu!