je fais face à un problème lorsque j'utilise une passerelle de nuages au printemps
est si une dépendance appelle spring-boot-starter-Tomcat directement ou de manière récursive
cela ne fonctionnera pas car il démarrera le serveur Tomcat intégré et non le serveur Netty utilisé par la passerelle de cloud printanière
j'ai commencé à résoudre ce problème en excluant cette dépendance
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
</exclusion>
</exclusions>
la passerelle des nuages du printemps a fonctionné avec succès
mais parfois, je veux utiliser spring-cloud-starter-oauth2 pour utiliser @ EnableOAuth2Sso
je commence à utiliser
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
à cette époque, je suis confronté au gros problème qui jette exception en disant
Causée par: Java.lang.IllegalStateException: échec de l'introspection des méthodes annotées sur la classe org.springframework.security.oauth2.config.annotation.web.configuration.OAuth2ClientConfiguration ......
Causée par: Java.lang.NoClassDefFoundError: javax/servlet/Filter
Comme vous l'avez vu, la passerelle cloud Spring utilise le modèle réactif et est basée sur netty plutôt que sur Tomcat. Le changement réactif est un changement majeur et n'est actuellement pas pris en charge par Spring Security, mais son travail est en cours. Vous pouvez le suivre à l'adresse suivante: https://github.com/spring-cloud/spring-cloud-gateway/issues/179