La raison du problème est la suivante, car netty est fermé de manière asynchrone, donc après la fermeture du servlet Tomcat, netty n'est pas encore fermé, donc cette erreur se produit. Réglez simplement Netty pour qu'il se synchronise. Mais maintenant, il y a toujours un avertissement lorsque la synchronisation est désactivée :
严重 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [electric] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@6c9a20a]) and a value of type [io.netty.util.internal.InternalThreadLocalMap] (value [io.netty.util.internal.InternalThreadLocalMap@59404c7b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
En fait, ce problème peut être ignoré. J'ai rencontré ce problème. Les réponses que j'ai trouvées à ce moment-là étaient :
https://github.com/relayrides...
https://github.com/netty/nett...
Le mien est un programme Spring, et un SmartLifecycle est enregistré, qui est appelé lorsque le programme s'arrête :
Si vous êtes un servlet, vous devriez avoir un écouteur similaire. Faites simplement cela dans l'écouteur.
Accès illégal, vérifiez si les autorisations de votre Tomcat sont activées
La raison du problème est la suivante, car netty est fermé de manière asynchrone, donc après la fermeture du servlet Tomcat, netty n'est pas encore fermé, donc cette erreur se produit. Réglez simplement Netty pour qu'il se synchronise. Mais maintenant, il y a toujours un avertissement lorsque la synchronisation est désactivée :
Je ne sais pas par où commencer. . .