WARNING: An illegal reflective access operation has occurred

Fermé
code94 Messages postés 4 Date d'inscription dimanche 17 mai 2020 Statut Membre Dernière intervention 19 mai 2020 - 17 mai 2020 à 01:46
code94 Messages postés 4 Date d'inscription dimanche 17 mai 2020 Statut Membre Dernière intervention 19 mai 2020 - 19 mai 2020 à 19:49
Bonsoir!

je débute en JEE. j'utilise eclipse et Tomcat comme serveur.
J'essaie de run une simple servlet mais j'ai ces warning là que je n'arrive pas à comprendre!
INFOS: Destruction du gestionnaire de protocole ["http-nio-8080"]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/home/.../apache-tomcat-9.0.31/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs
WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release



Help please!

2 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
17 mai 2020 à 12:56
Bonjour,

Ce ne sont que des WARNING, pas des ERROR, tu peux les ignorer.

Ce n'est pas ton programme qui pose problème, mais Tomcat.
Ces messages apparaissent depuis Java 9, à cause du fonctionnement interne à Tomcat.
0
code94 Messages postés 4 Date d'inscription dimanche 17 mai 2020 Statut Membre Dernière intervention 19 mai 2020
18 mai 2020 à 02:48
Bonsoir,

Je te remercie pour ta réponse.
Mais justement je ne comprend pas ce problème de Tomcat et Java 9. Comment corriger cela? Je ne trouve pas grand chose sur internet.

Merci!!
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019 > code94 Messages postés 4 Date d'inscription dimanche 17 mai 2020 Statut Membre Dernière intervention 19 mai 2020
18 mai 2020 à 08:43
Il y a eu pas mal de changements en Java 9, notamment avec l'arrivée des modules et tout ce qui va avec.
Le code d'un module Client ne peut pas accéder au code d'un module Vendeur si le vendeur ne l'a pas autorisé. C'est vérifié à la compilation.
Mais il est possible via les classes de java.lang.reflect notamment d'accéder à du code à la volée sans qu'il n'ait été compilé au préalable.
En théorie, avec les modules, l'exécution par le module Client d'un code non autorisé du module Vendeur devrait être interdit. Mais pour des raisons de rétrocompatibilité si cela se produit il y a juste un warning mais Java exécute quand même le code.
C'est ce qu'il se passe dans le fonctionnement de Tomcat, mais c'est aux équipes de Tomcat de corriger leurs modules (ce qu'ils ne semblent pas décidés à faire tant que ça marche...)
0