web-dev-qa-db-fra.com

ApplicationContextException: impossible de démarrer ServletWebServerApplicationContext en raison du bean ServletWebServerFactory manquant

J'ai écrit une application batch en utilisant Spring Boot. Lorsque j'essaie d'exécuter cette application à l'aide de la ligne de commande et du chemin d'accès aux classes sur mon système local, tout fonctionne correctement. Cependant, quand j’ai essayé de l’exécuter sur un serveur linux, il m’exception suivante:

Unable to start web server; nested exception is
org.springframework.context.ApplicationContextException: 
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

Ci-dessous est la façon dont je l'exécute:

Java -cp jarFileName.jar; lib\* -Dlogging.level.org.springframework=DEBUG -Dspring.profiles.active=dev -Dspring.batch.job.names=abcBatchJob com.aa.bb.StartSpringBatch > somelogs.log
8
Vijayant Bhatia

La solution est:

J'ai explicitement défini la propriété ci-dessous sur none dans le fichier application.yml.

spring:
  main:
    web-application-type: none
5
Vijayant Bhatia

J'ai eu ce problème lors de la migration vers Spring Boot. J'ai trouvé un conseil pour supprimer les dépendances et cela m'a aidé. Donc, j'ai supprimé la dépendance pour jsp-api Project had. De plus, la dépendance servlet-api doit également être supprimée.

compileOnly group: 'javax.servlet.jsp', name: 'jsp-api', version: '2.2' 
0
Evgeniy

Il vous manque probablement @SpringBootApplication dans votre classe d'initiation au démarrage de printemps.

@SpringBootApplication
public class LoginSecurityAppApplication {

    public static void main(String[] args) {
        SpringApplication.run(LoginSecurityAppApplication.class, args);
    }

}
0
vishal thakur

La mise à niveau de spring-boot-starter-parent dans pom.xml vers la dernière version a résolu le problème.

0
Michael

J'ai rencontré ce problème lorsque j'ai tenté de lancer mon application Web en tant que fat jar plutôt que depuis mon IDE (IntelliJ).

C'est ce qui a fonctionné pour moi. Ajoutez simplement un profil par défaut au fichier application.properties.

spring.profiles.active=default

Vous n'avez pas à utiliser les paramètres par défaut si vous avez déjà configuré d'autres profils spécifiques (dev/test/prod). Mais si ce n’est pas le cas, il est nécessaire d’exécuter l’application comme un gros pot.

0
NemraOx