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!
A voir également:

2 réponses

KX
Messages postés
16583
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 août 2022
2 972
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
16583
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 août 2022
2 972 > 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